zoukankan      html  css  js  c++  java
  • 依赖查找与依赖注入

    1.依赖查找

    依赖查找是控制反转设计原则的一种实现方式。大体思路是:容器中的受控对象通过容器的API来查找自己所依赖的资源和协作对象。这种方式虽然降低了对象间的依赖,但是同时也使用到了容器的API,造成了我们无法在容器外使用和测试对象。依赖查找是一种更加传统的IOC实现方式。

    两种查找方式:

    • 依赖拖拽(DP):注入的对象如何与组件发生联系,这个过程就是通过依赖拖拽实现;
    • 上下文化依赖查找(CDL):在某些方面跟依赖拖拽类似,但是上下文依赖查找中,查找的过程是在容器管理的资源中进行的,而不是从集中注册表中,并且通常是作用在某些设置点上;

    2.依赖注入

    依赖注入是自身对象中的内置对象是通过注入的方式进行创建,无需依赖特定的容器和API。容器全权负责组件的装配,它会把符合依赖关系的对象通过属性(JavaBean中的setter)或者是构造子传递给需要的对象。

    四种注入方式:

    • 构造函数方法注入
    • Setter方法注入
    • 接口注入
    • 基于注解的依赖注入

    注:Spring主要提供了@Autowired@Resource注解模式:
    1.@Autowired注解,可以对Bean类成员变量、方法及构造函数进行标注,完成依赖注入的自动装配工作。使用@Autowired可以省略Bean类的待依赖注入对象的set方法,默认情况下按照依赖注入对象的类型自动进行匹配。
    2.@Resource注解的功能和@Autowired注解功能相近,它有nametype两个主要的属性。Spring容器对于@Resource注解的name属性解析为bean的名字,type属性则解析为bean的类型。

    3.优劣对比

    类型 依赖处理 实现便利性 代码侵入性 API依赖性 可读性
    依赖查找 主动获取 相对繁琐 侵入业务逻辑 依赖容器API 良好
    依赖注入 被动提供 相对便利 低侵入性 不依赖容器API 一般
  • 相关阅读:
    c# 判断点在区域内,外
    数据库行转列的sql语句
    正则表达式 mac 地址 匹配
    js check (转)
    MessageBox 确认对话框
    获得 客户端信息(IP && Mac)
    根据 标识 自动编号
    行转列 demo
    dataset 中 datatable 关联查询
    ACM 进阶指南
  • 原文地址:https://www.cnblogs.com/ason-wxs/p/13442904.html
Copyright © 2011-2022 走看看