ssh中spring用new对象的疑惑

用了两个月的SPRING,丝毫没有感觉到其优越性,好像带来了编程的烦琐,应该是对其了解不深。哪位高手用直接的项目经验说一下其对程序扩展优越性?我注意到比较多的人用SSH后,依然是对类进行硬实例化,用NEW,这样是不是和SPRING的初衷有背?哪位高手帮我解惑?比如:我的某DAO类,被引用,在spring中作了登记,但应用中仍用new初始化,咋样才能做到所谓程序扩展热拨插?我没搞明白,请教啊,学习。。

这些都是误用Spring,因为使用者如果不理解Spring的思想Ioc/AOP,那么当然还是会New实例,而且没有感觉再维护上好处,这也是目前很多所谓Spring教程或自学Spring缺陷所在。

其实spring的思想很简单,IOC+AOP,通俗点讲:
就是需要的时候就拿来用,不是一开始就定义好。
而怎么用我们需要写配置文件告诉classloader,通过映射,需要用调哪个类,怎样调,依赖关系如何,这就是ioc。。
如果我要在业务中插入些与业务无关的代码,例如log,安全,线程池缓存,事务之类的,做J2EE就是有太多与业务无关的东西,才会那么复杂。
我们用aop把代码隔开。。

不知道对不对,我一直都是这么理解spring的,不过感觉spring有些地方很灵活,在具体项目用过了你就知道了。用spring的好处是不显式调用new去生成对象,开发时方便调试和TDD,维护起来修改容易,只改POJO就好了,不好的地方就是如果要修改配置文件就要重启服务器,不方便而且不实际(重启时可能中断了一些用户正在使用的正常事务,那又是事务管理的事情了)。
[该贴被boby2046于2007年08月13日 15:13修改过]

那也不能是每个类都用IOC来实例化吧?

有分受管bean与非受管bean,如果想由spring的ioc管理bean的生命周期,当然要配置文件写上,(Spring2.0支持Annotation);其他的你可以用Classloader,也可以直接new阿,那你就失去了ioc的好处了。

不好意思,翻个老帖子出来。

我一直在照猫画虎的自学·~~ 所以一直对spring有些惧怕。。

假如项目中有个创建文件类,这个类在xml中配置:


<!--创建文件-->
<bean id="createFileProxy" parent="baseProxy">
<property name=
"target">
<bean
class=
"com.xxx.createFileProxy"
</property>
</bean>


在需要用到的地方


WebApplicationContext appContext = WebApplicationContextUtils.getWebApplicationContext(request.getSession().getServletContext());
ICreateFile cf = (ICreateFile) appContext.getBean("createFileProxy");
cf.create();
//这里创建文件

这个是不是算做spring的IOC?


谢谢了~~

DAO类在spring中作了登记后,只要设置其getter和setter方法,就可以直接使用了.怎么还用new创建呀.

DAO类在spring中作了登记后,只要设置其getter和setter方法,就可以直接使用了.怎么还用new创建呀.