IOC和DI
IOC:(Inversion(反转)Of Control):控制反转:
控制:资源的获取方式
主动式:(要什么资源都自己创建即可)
例:
BookServlet{
BookServlet bs = new BookServlet();
Airplane ap = new Airplane();//需要很多参数,对于复杂对象的创建是比较庞大的工程
}
被动式:资源的获取不是我们自己创建,而是交给一个容器来创建和设置
例:
BookServlet{
BookServlet bs;
public void test01(){
bs.checkout();//
}
}
容器:管理所有的组件(有功能的类);假设,BookServlet守容器管理,则BookService也受容器管理;容器可以自动的探查出哪些组件(类)需要用到另一些组件(类);容器帮我们创建BookService对象,并把BookService对象赋值过去;
主动的new资源变成被动的接受资源;
DI:(Dependency Injection)依赖注入:
容器能知道哪个组件(类)运行的时候,需要另外一个(组件);容器通过反射的形式,将容器中准备好的BookService对象注入(利用反射给属性赋值)到BookServlet