Sping中的IOC和ID Java在创建对象或者获取对象的方式,一般来说在方法中获取另外的一个对象的方法:new Object();这样申请对象的操作,在多对像协作时显示出的耦合度较高。于是SpingIOC的便捷就可以完美的体现出解耦的必要性。 IOC的思想:通过Sping容器来实现这些相互依赖对象的创建、协调工作等。如何获取到对象的控制权交给Sping框架来决定。因此叫做“控制反转Sping中所有的类都需要在Sping容器中登记:
![](https://img.haomeiwen.com/i7597536/debcee52db5524f9.png)
这样注入spring后对象的所有的控制权全部交由Sping来管理,而不是对象的引用。 DI(依赖注入):DI其实就是IOC的一种特例,它的目标就是可以动态的向某个对象提供它所需要的其他对象。底层实现机理:反射。
一、使用XML配置的方式实现IOC (1)接口
![](https://img.haomeiwen.com/i7597536/e23373b62b18d65e.png)
(2)实现
![](https://img.haomeiwen.com/i7597536/1e4c84e6c18275e2.png)
(3)业务层
![](https://img.haomeiwen.com/i7597536/3694010e1a30eb7a.png)
(4)向Spring注册
![](https://img.haomeiwen.com/i7597536/1a1925ee222c3d9b.png)
(5)单元测试
![](https://img.haomeiwen.com/i7597536/300db5453926f1a0.png)
二、注解配置IOC
(1)实现注入
![](https://img.haomeiwen.com/i7597536/fe81580e438bd295.png)
@Component:Spring启动时会自动将该类转化为Bean进行管理。 (2)逻辑层
![](https://img.haomeiwen.com/i7597536/ce7a6beb208c54b5.png)
(3)修改Sping配置文件
![](https://img.haomeiwen.com/i7597536/c28c526abe004031.png)
(4)test测试单元
![](https://img.haomeiwen.com/i7597536/dab731d532a9c45f.png)
三、零配置实现IOC
(1)实现
![](https://img.haomeiwen.com/i7597536/b42fc8efdd847364.png)
(2)业务
![](https://img.haomeiwen.com/i7597536/7a28d90f4ff9b8c5.png)
(3)配置类
![](https://img.haomeiwen.com/i7597536/e4d259b5ec42ff58.png)
(4)测试单元
![](https://img.haomeiwen.com/i7597536/ae2f9e286b071dc5.png)
网友评论