zoukankan      html  css  js  c++  java
  • spring DI

      DI:依赖注入,是IOC的一种重要实现 。一个对象的创建往往会涉及到其他对象的创建,比如一个对象A的成员变量持有着另一个对象B的引用,这就是依赖,A依赖于B。IOC机制既然负责了对象的创建,那么这个依赖关系也就必须由IOC容器负责起来。负责的方式就是DI——依赖注入,通过将依赖关系写入配置文件,然后在创建有依赖关系的对象时,由IOC容器注入依赖的对象,如在创建A时,检查到有依赖关系,IOC容器就把A依赖的对象B创建后注入到A中(组装,通过反射机制实现),然后把A返回给对象请求者,完成工作。总的来说就是将一个类注入到另一个类之中,所以除了本次列举的配置文件中的注入,自定义类上面使用的@Resource、@Autowired都属于依赖注入

      在spring-base配置文件中除了可以配置bean对象外,还可以对bean对象的属性进行配置:

    <bean id="emp" class="cn.lt.spring.vo.Emp">

      <property name="empno" value="7369"/>

    </bean>

      这是对于单个类进行的IOC的处理,但是如果A类依赖于B类呢?

    A类中:

      private B b ;

      public void setB(B b){

        this.b = b ;

      }

    这样spring中的处理是只需要在A类<bean>标签中引入B就可以了:

    <bean id="a" class="cn.lt.spring.vo.A">

      <property name="ano" value="7369"/>

      <property name="b" ref="b" />    //对依赖类的注入使用<property>就可以

    </bean>

    <bean id="b" class="cn.lt.spring.vo.B">

      <property name="bno" value="8899"/>

    </bean>

    数组注入:使用<array>标签

      <array>

        <ref bean="B">

        <ref bean="C">

      </array>

    list集合注入:使用<list>标签,默认使用ArrayList

      <list>

        <ref bean="B">

        <ref bean="C">

      </list>

    set集合注入:默认使用LinkedHashSet子类

      <set>

        <ref bean="B">

        <ref bean="C">

      </set>

    map集合注入:默认使用LinkedHashMap子类

      <map>

        <entry key="a" bean="B">

        <entry key="b" bean="C">

      </map>

    properties集合注入:

      <props>

        <prop key="hello">世界</prop>

        <ref key="world">你好</prop>

      </props>

  • 相关阅读:
    linux(centos 6.4)下安装php memcache服务端及其客户端(详细教程)
    linux下swap问题处理
    mysql锁表查询,binlog日志清理
    Centos7上安装部署frp内网穿透
    配置frp实现内网穿透,域名再也不用备案了
    xp激活码 windows xp产品密钥 xp sp3专业版正版序列号
    windows不能使用剪贴板解决办法
    mysql多主一从配置
    给mysql的root %用户添加grant权限和创建的用户权限
    redis主从及集群配置密码
  • 原文地址:https://www.cnblogs.com/haibinggan-/p/9233452.html
Copyright © 2011-2022 走看看