什么是IOC容器
- 英文:Inversion of control (控制反转)
- 描述:把对象的创建,赋值,管理工作交给代码之外的容器实现,也就是对象的创建是由其他的外部资源来完成的
- 控制:创建对象,对象属性赋值,对象之间的关系管理
- 反转:把原来的开发人员管理,创建对象的工作交给外码之外的容器实现,由容器代替开发人员管理、创建、赋值。
- 什么是正转:由开发人员手动创建对象 通过new 创建对象
- 控制反转:在这个容器里面,这个容器代替了人员创建对象,赋值,管理的工作。
为什么使用IOC
- 对象的管理更加松散
- 解耦合
- 减少对代码的改动,也能实现不同的功能
在之前的学习中有没有IOC的体现
- servlet中体现出来了
所有的控制器对象不需要你去创建,直接在web.xml中配置一下tomcat就会帮你创建,tomcat作为容器:它里面放了Listener对象,Filter对象,Servlet对象
IOC的技术实现
- DI 是 IOC的实现
- DI 翻译过来就是依赖注入 Dependency Injection
- 我们只需要在程序中提供要使用的对象的名字就可以了,对象中如何在容器中创建,赋值,查找由内部容器实现。
- spring是使用了DI技术实现了IOC的功能,spring底层创建对象使用的反射机制
- spring是一个容器,管理对象,给属性赋值,底层是反射机制创建对象