ssh中spring用new对象的疑惑

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

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

boby2046
2007-08-13 15:09
其实spring的思想很简单,IOC+AOP,通俗点讲:

就是需要的时候就拿来用,不是一开始就定义好。

而怎么用我们需要写配置文件告诉classloader,通过映射,需要用调哪个类,怎样调,依赖关系如何,这就是ioc。。

如果我要在业务中插入些与业务无关的代码,例如log,安全,线程池缓存,事务之类的,做J2EE就是有太多与业务无关的东西,才会那么复杂。

我们用aop把代码隔开。。

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

[该贴被boby2046于2007年08月13日 15:13修改过]

51cpu
2007-08-14 17:41
那也不能是每个类都用IOC来实例化吧?

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

猜你喜欢
2Go 1 2 下一页