控制反转即IOC (Inversion of Control),它把传统上由程序代码直接操控的对象的调用权交给容器,通过容器来实现对象组件的装配和管理。所谓的“控制反转”概念就是对组件对象控制权的转移,从程序代码本身转移到了外部容器
Spring IOC 负责创建对象,管理对象(通过依赖注入(DI),装配对象,配置对象,并且管理这些对象的整个生命周期。
2、作用
管理对象的创建和依赖关系的维护
解耦,由容器去维护具体的对象
托管了类的产生过程,比如我们需要在类的产生过程中做一些处理,最直接的例子就是代理,如果有容器程序可以把这部分处理交给容器,应用程序则无需去关心类是如何完成代理的
四、核心IOC和AOP
IOC(控制反转)
创建被调用者的工作不再由调用者完成,而是由Spring完成,再给调用者
好处:降低了程序的耦合性
AOP(面向切面编程)
概念:通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术
实质:JDK动态代理
(
动态代理分为两类 : 一类是基于接口动态代理 , 一类是基于类的动态代理
基于接口的动态代理----JDK动态代理
接口:proxy InvocationHandler
基于类的动态代理–cglib
)
主要表现:1.提供声明式事务管理
2.支持用户自定义切面
特征:1.各个步骤间良好的隔离性
2.源代码无关性
好处:可以将一些通用任务,如事务、日志、安全等集中管理,提高了代码的复用性和管理的便携性