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.依赖注入和控制反转是对同一件事情的不一样描述,从某个方面讲,就是它们描述的角度不一样。
依赖注入是从应用程序的角度在描述,能够把依赖注入描述完整点:应用程序依赖容器建立并注入它所须要的外部资源;
而控制反转是从容器的角度在描述,描述完整点:容器控制应用程序,由容器反向的向应用程序注入应用程序所须要的外部资源。