SPRING框架的理解

来源:百度知道 编辑:UC知道 时间:2024/05/15 02:03:14
我是做J2EE开发的,用到了SPRING,最近才开始整理一些开发心得.请高手指点一下,我说的对不对..

SPRING应该是一种集合的框架,并不是为J2EE开发的,它的核心可能在与IOC.
1.IOC我不太明白,可能意思是让不同组件更加独立,我碰上的J2EE用到的就是那种不同层次的调用,比如SERVICE层调用DAO层的对象?而且是调用者用的是接口并且进行SET方法,而在配置文件中通过具体实现类给注入进去,当然用三种IOC方法,但是一般SPRING推荐开发都用这种吧..还是不太理解IOC到底为何好呢?在SERVICE层直接new实现类具体的坏处是什么?如果要更改则需要重新编译??而且有时候经常看见调用的时候用了BEANFACTORY(调用BEAN的名字)这样的方法来调用,这个是不是也破坏了结构呢??
2.除了IOC,可能就是AOP,方面编程,不太理解,可能是说有一个事件每次都要有如下步骤,然后就集成一起开发,节省代码效率??希望通俗说下..
3.至于核心可能是所谓的APPLICATIONCONTEXT.XML了,将需要定义的BEAN关系和AOP都申明进XML里了,至于这个东西,应该是和WEB服务器无关的东西.甚至是不在WEB.XML申明关于SPRING都可以,因为它没有专门的SERVLET进行处理.假设不申明APPLICATIONCONTEXT.XML进去监听,那么就只是无法进行IOC的注入,但是并不影响用BEANFACTORY直接从配置文件里找到需要的类...是不是可以这样理解呢?
4.关于其他的部分,SPRING可能有六七个部分吧,上面的XML可能是核心部分,那剩下的部分,是不是各个的核心则为一些方法函数,比如DAO层就有方便抽象HIBERNATE的对象函数,这样可以更加好的抽象出这些方法..是不是作用也仅在更方便的书写方便的函数呢??

问的比较乱,高手来指点一下吧..
忘记给悬赏了..大家继续补充吧..就是说直接NEW的话要管理生命周期那些麻烦东西,现在用SPRING则直接会销毁?节省资源?那么..相当于..类A如果里面NEW个B,如果是直接NEW,则资源存在时间更长,如果是用SPRING则调用完毕了就DESTORY?

IoC的好处,根本是在于解除了互相间的依赖

当项目规模较小的时候,并不能感觉到这点好处。new一个对象出来也是一样,但这样,就把自己绑定在这行代码之上了,代码的扩展性很低。

举个例子,userDAO,如果我希望能够很方便在数据库和LDAP中切换,或者和不同的外部系统整合,总不希望,对一个类不停的反复修改,或着让接口多带一个毫无用处的参数吧

这样的好处更是在测试中大大提现出来,解藕之后的单元测试才能真正起到作用,否则如果都和服务器绑在一起,测试将是相当困难的

当然不是三言两语能讲清楚的,还是自己多实践领悟一下吧。

 IoC(控制反转)
对象被动接收依赖类而不是自己主动去找,即由 spring 来负责控制对象的生命周期和对象间的关系。
控制反转(Inversion of Control)
所有的类都会在spring容器中登记,告诉spring你是个什么,你需要什么,然后spring会在系统运行到适当的时候,把你要的东西主动给你,同时也把你交给其他需要你的类。所有的类的创建、销毁都由spring来控制,也就是说控制对象生存周期的不再是引用它的对象,而是spring。对于某个具体的对象而言,以前是它控制其他对象,现在是所有对象都被spring控制,所以这叫控制反转。