Spring-IOC
IOC 控制反转(Inversion of Contorl)
控制反转是一种思想;就是对对象控制权的转移,从程序本身转移到外部容器中。把对象的创建、初始化、销毁等工作都交给Spring容器来实现。由Spring容器来控制对象的生命周期。
DI 依赖注入(dependency Injection)
DI 依赖注入指程序运行过程中,若需调用另一个对象,无需再代码中创建对象,而是依赖外部容器,由外部容器创建后传递给程序。依赖注入是目前最优秀的解耦方式。依赖注入让Spring的Bean之间以配置文件的方法组织在一起,而不是以硬编码的方式耦合在一起。DI 依赖注入是IOC的另一种表达方式:组件以一些预先定义好的方式(如:setter方法)接收来自容器的资源注入。相对于IOC 更加直接。
IOC 和 DI 之间的关系
1.它们是spring核心思想的不同方面的描述。
2.依赖注入和控制反转是对同一件事情的不同描述,从某个方面讲,就是它们描述的角度不同。
依赖注入是从应用程序的角度在描述,可以把依赖注入描述完整点:应用程序依赖容器创建并注入它所需要的外部资源;
而控制反转是从容器的角度在描述,描述完整点:容器控制应用程序,由容器反向的向应用程序注入应用程序所需要的外部资源。