|-----简介
控制反转(Inversion of Control,缩写为IOC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。
|-----描述
Class A中用到了Class B的对象b,一般情况下,需要在A的代码中显式的new一个B的对象。
采用依赖注入(DI)技术之后,A的代码只需要定义一个私有的B对象,不需要直接new来获得这个对象,而是通过相关的容器控制程序来将B对象在外部new出来并注入到A类里的引用中,即将对象的创建权交(反转)给Spring。而具体获取的方法、对象被获取时的状态由配置文件(如XML)来指定。
|-----实现形式
-
依赖查找:容器提供回调接口和上下文条件给组件。
-
依赖注入:组件不做定位查询,只提供普通的Java方法让容器去决定依赖关系。
|-----IOC的底层实现