IOC
IOC定义: Inversion Of Control 控制反转
控制:资源的获取方式
主动式: (需要什么资源都自己创建即可)
1
2
3BookServlet{
BookService bs= new BookService();
AirPlane ap=new Airplane();//复杂对象的创建是非常庞大的工程,new来new去不好}被动式:资源的获取不是我们自己创建,而是交给一个容器来创建和设置
1
2
3
4
5
6BookServlet{
BookService bs;
public void test01(){
bs.checkout();
}
}
容器的作用:管理所有的组件(组件就是有功能的类);假设bookservlet受容器管理,bookservice也受容器管理,则容器可以在上述代码执行的时候,自动探查出某些组件需要用到另一些组件。资源的创建和销毁交给容器来进行。
也就是说,IOC就是变主动的new为被动的接收资源!
DI(Dependency Injection,依赖注入)就是对这种实现思想的一种描述:容器能知道哪个组件(类)运行的时候,需要另一个类;然后容器通过反射的形式,将容器中准备好的BookService对象注入到BookServlet中,运用反射给Bean赋值。
只要是容器管理的组件,都能使用容器提供的强大功能。
把对象交给容器来创建的操作,现在又叫做在容器中注册组件