zoukankan      html  css  js  c++  java
  • IOC与DI的区别

    一、IOC介绍

    1.IOC是控制反转。

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

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

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

    二、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>一样。

    三、区别

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

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

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

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

  • 相关阅读:
    博客园
    未释放的已删除文件
    ssh连接缓慢
    剑指 Offer 38. 字符串的排列
    剑指 Offer 37. 序列化二叉树
    剑指 Offer 50. 第一个只出现一次的字符
    剑指 Offer 36. 二叉搜索树与双向链表
    剑指 Offer 35. 复杂链表的复制
    剑指 Offer 34. 二叉树中和为某一值的路径
    剑指 Offer 33. 二叉搜索树的后序遍历序列
  • 原文地址:https://www.cnblogs.com/zdf159/p/7252949.html
Copyright © 2011-2022 走看看