Bootstrap

Spring ioc的底层原理

什么是IOC(DI)

IOC(Inversion Of Control,控制反转):一个类的某个属性需要使用时,需要有本类自己初始化。而在spring类的某些属性不用自己初始化而交给了spring来管理。这样的转换就是IOC思想。Spring的IOC思想是,spring的IOC容器在初始化的时候就根据配置对相应的对象进行初始化,并放在容器中。同时根据配置对相应类的属性进行初始化。也就是DI(Dependency Injection依赖注入),至此类的初始化不需要类本身负责初始化而交给了spring容器。

IOC的好处是:降低耦合性:某个类的一个属性,以前是该类自己控制,而引人Spring后,这个类的属性由Spring控制。

Spring IOC的模拟所做的事情是:在xml文件配置好相应的bean,设置注入关系。在解析xml时候对bean进行初始化同时对相应属性进行注入。

实现原理

 Ioc其实就是利用简单工厂模式,来解决代码需要重复修改的问题。

一般来说,我们在写项目的时候,如果需要更改一个类的名字或类内方法的名字时候,小项目还好说,一个一个改,但我们如果完成的是一个大项目,一个一个改就不太现实了,所以Spring  ioc 就是为了解决这一问题而存在。

我们可以通过这张图来了解ioc的底层实现原理,

;