IOC基本概述
IOC是遵循依赖倒置原则的具体思路概念-全称是控制反转,将控制权进行反转,普通的依赖是上层依赖下层,依赖反转后将变为上层依赖下层,将下层的创建控制权反转交给上层,通过程序的构造函数或set方法进行设置。
IOC的实现有DL,DI两种方式:
DL(Dependency Lookup):
依赖查找,EJB等框架解决依赖注入的方式就是依赖查找,需要依赖的时候主动调框架方法进行查找,查找时需要提供相关的配置文件和路径,key等信息确定信息的状态;由于这种方式需要业务方主动调用API接口进行查找,具有很强的侵入性,所以已经被抛弃了。
DI(Dependency Injection):
依赖注入—接口,Set,构造函数,注解注入
依赖注入的方式:
Setter方式
实现类里面的set方法
接口方式:
实现特定接口
构造函数:
通过构造函数进行注入
注解:
通过注解的方式注入依赖
Spring基于DI实现IOC后,提出了容器的概念,容器管理着所有的Bean的生命周期和依赖注入。Spring中控制反转后依赖注入的权限反转给了容器,由容器控制依赖的注入,对象创建的细节由容器完成,依赖的关系也由容器处理。
IOC容器的优势:
-
避免到处New来创建类,并且可以做到统一维护,只需要提供配置信息
-
创建实例的时候,不需要了解其中的实现细节
-
反射+工厂模式的集合体,满足开闭原则
根据给出的字符串类名,动态生成对象,这种编程方式在对象生成是决定是什么对象。IOC模式可以被看作是一个工厂模式,IOC容器可以说是结合配置文件或注解实现工厂模式。所有需要容器进行依赖注入的对象都需要通过配置文件提供信息或注解提供信息。
网友评论