IOC 就是控制反转,控制反转是一种设计思想,而不是一种具体的技术实现

在 Spring 中,控制反转指的是将对象的控制权转移给 Spring 框架进行管理,由 Spring 帮我们创建对象,管理对象之间的依赖关系

以前创建对象的主动权和时机都是由自己把控的,现在由 IOC 容器来做,在很大程度上简化了应用的开发

IOC 容器实际上就是一个 Map 的键值对,Map 里面存放的是各种对象。IOC 容量就像一个工厂一样,当我们需要创建对象的时候,只需要通过 xml 配置文件或者注解,把对象注册到组件中,而我们完全不用考虑对象是如何被创建出来的

其中,IOC 的最常见以及最合理的实现方式叫做依赖注入(DI)

使用 IOC 的优点
降低对象之间的依赖程度和耦合度
便于资源的管理。在 IOC 容器中,所有对象默认都是单例的


AOP面向切面编程基于IoC,是对OOP的有益补充;AOP代表的是一个横向的关系,剖解开封装的对象内部,并将那些影响了 多个类的公共行为封装到一个可重用模块,并将其名为“Aspect”,即切面。简单地说,就是将那些与业务无关,却为业务模块所共同调用的 逻辑或责任封装起来,比如日志记录,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可操作性和可维护性。

AOP使用场景:
Authentication 权限检查
Caching 缓存
logging, 日志记录
Persistence  持久化
Resource pooling 资源池
Synchronization 同步
Transactions 事务管理

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐