核心思想:IOC(控制反转)=DI(依赖注入)AOP(面向层面)
Spring是一个轻量级控制反转(IOC)和面向层面(AOP,很多解释为面向切面,我更倾向理解为面向层面,面向方向)的开源容器框架;
Spring的一个最大的目的就是使JAVA EE开发更加容易;
更多地强调面向对象的设计;
使应用程序更加容易测试;
使用接口而不是使用类,是更好的编程习惯,Spring将使用接口的复杂度几乎降低到了零;
Spring使用的是基本的JavaBean来完成以前只可能由EJB(Enterprise JavaBean)完成的事情,为JavaBean提供了一个更好的应用配置框架;
从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益;
最完善的轻量级核心框架。
IOC(DI):
IOC容器生成对象是通过反射方式,在运行效率上有一定的损耗。
控制反转:类的控制权(获得依赖对象的过程)由自身管理变为了由IOC容器主动注入。因此,控制反转也叫依赖注入。
依赖注入:就是由IOC容器在运行期间,动态地将某种依赖关系注入到对象之中。 注入的两种方式,设置注入和构造注入。比如注解
通过引入IOC容器,利用依赖关系注入的方式,实现具有依赖关系的对象之间的解耦。
好处: 降低模块之间的耦合度,可维护性好;
开发团队成员各司其职,开发效率高;
模块代码复用性高;
AOP:
AOP通过预编译方式和运行期动态代理实现程序功能的统一维护,AOP可以说是对OOP的补充和完善。
现AOP的技术,主要分为两大类:
一是采用动态代理技术,利用截取消息的方式,对该消息进行装饰,以取代原有对象行为的执行;
二是采用静态织入的方式,引入特定的语法创建“Aspect”,从而使得编译器可以在编译期间织入有关“Aspect”的代码,属于静态代理。
利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
先码到这,回头再来。