IOC (Inversion Of Control,控制反转)与DI(Dependency Injecion,依赖注入)
用于对象间解耦,如在以前若对象A依赖B则需要在A中负责B的创建初始化等工作,现在有了IOC容器(如Spring的)专门负责对象的创建等生命周期的管理,A中只要声明一个B对象就可使用而不再需要负责初始化B(@Autowired等)。“反转”体现在A获得依赖对象B的过程由之前的主动行为变成了被动行为,即获得依赖对象的过程“反转了”。
IOC主要通过DI(Dependency Injection,依赖注入)实现,而DI在实现上主要是通过反射完成的,通过反射动态创建对象。
依赖注入的方式:
注解注入:@Autowired、@Resource等用于引用对象的注入,@Value用于基本类型的的注入
setter注入
构造器注入
IOC与DI的区别:前者表示将对象的创建等生命周期交由特定容器如Spring容器管理,后者表示在容器创建对象的过程中把对象依赖的属性注入(赋值)到该对象中。
更多可参阅:
https://blog.csdn.net/ivan820819/article/details/79744797
https://blog.csdn.net/javazejian/article/details/54561302
详情可参阅:https://blog.csdn.net/javazejian/article/details/54561302
原文地址:https://www.cnblogs.com/z-sm/p/11156621.html
时间: 2024-10-10 18:31:24