IOC与DI的区别

1、IOC介绍spring

1.IOC是控制反转。spa

2.传统资源查找方式:要求组件向容器发起请求,查找资源做为回应,容器适时返回资源。xml

3.IOC查找方式:容器会主动将资源提供给它所管理的组件,组件只须要选择一个合适的方式来接收资源,也被称为查找的被动式。对象

4.建立对象实例的控制权从代码控制剥离到IOC容器控制(以前的写法,由程序代码直接操控使用new关键字),实际就是你在xml文件控制,控制权的转移是所谓反转,侧重于原理。资源

 

2、DI介绍容器

1.DI是依赖注入原理

2.IOC的另外一种表达方式:组件以一些预先定义好的方式(如:setter方法)接收来自容器的资源注入。依赖注入

3.相对于IOC而言,这种表述更加直接。请求

4.建立对象实例时,为这个对象注入属性值或其它对象实例,侧重于实现。程序

 

属性注入(最经常使用)

1.经过set方法注入Bean的属性值或依赖的对象。

2.name属性:制定Bean属性set方法后的属性名。

3.value属性值:能够使(value)子节点指定属性值。

 

构造器注入

1.经过构造器注入Bean属性值或依赖对象,它保证Bean实例在实例化后能够使用。

2.构造器注入在<constractor-arg>同样。

 

3、区别

1.它们是spring核心思想的不一样方面的描述。

2.依赖注入和控制反转是对同一件事情的不一样描述,从某个方面讲,就是它们描述的角度不一样。

依赖注入是从应用程序的角度在描述,能够把依赖注入描述完整点:应用程序依赖容器建立并注入它所须要的外部资源;

而控制反转是从容器的角度在描述,描述完整点:容器控制应用程序,由容器反向的向应用程序注入应用程序所须要的外部资源。

相关文章
相关标签/搜索