SpringIOC理解

Spring IOC 就是面向对象编程中的一种设计原则。

它是 依赖倒置原则的一种代码设计的思路,采用的方法就是依赖注入

 

所谓依赖注入,就是把底层类作为参数传入上层类,实现上层类对下层类的“控制”!!!

控制反转(IOC):不是下层控制着上层,而是反转过来----> 上层控制下层。

 

控制反转容器:即对类进行初始化(new)的地方,就是控制反转容器。   

IoC Container优势:

1、这个容器可以自动对你的代码进行初始化,只需要维护一个Configuration(可以是xml可以是一段代码),而不用每次初始化对象时候,都要亲手去写那一大段初始化的代码。

2、我们在创建实例的时候不需要了解其中的细节。  

假设我们新写的一个API需要实例化这个Service,总不可能回头去搞清楚这几百个类的构造函数吧?
IoC Container的这个特性就很完美的解决了这类问题——因为这个架构要求你在写class的时候需要写相应的Config文件,所以你要初始化很久以前的Service类的时候,前人都已经写好了Config文件,你直接在需要用的地方注入这个Service就可以了
这大大增加了项目的可维护性且降低了开发难度!!!


 

 

IOC的理论:它是借助于“第三方”实现具有依赖关系的对象之间的解耦。 

 

所谓IoC,对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系。 创建对象的控制权进行转移,以前创建对象的主动权和创建时机是由自己把控,而现在这种权力转移到第三方。

实现原理:

通过反射机制+工厂模式实现的,在实例化一个类时,它通过反射调用类中set方法将事先保存在HashMap中的类属性注入到类中。

控制反转就是:获得依赖对象的方式反转。

 

1、依赖注入发生的时间

(1).用户第一次通过getBean方法向IoC容索要Bean时,IoC容器触发依赖注入。

(2).当用户在Bean定义资源中为<Bean>元素配置了lazy-init属性,即让容器在解析注册Bean定义时进行预实例化,触发依赖注入。

 

2.依赖注入实现在以下两个方法中:

(1).createBeanInstance:生成Bean所包含的java对象实例。

(2).populateBean :对Bean属性的依赖注入进行处理。

posted @ 2020-10-07 17:02  青翎  阅读(103)  评论(0)    收藏  举报