• 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>

  • 相关阅读:
    字段修改名称
    coercing to Unicode: need string or buffer, geoprocessing value object found
    为什么ArcGIS 10.3导出 Shapefile的字段名会被截断成3个汉字?解决方法如下
    arcgis python 使用光标和内存中的要素类将数据加载到要素集 学习:http://zhihu.esrichina.com.cn/article/634
    arcgis python 获得arcgis安装版本和安装位置
    arcgis python 不知道一个工具怎么用
    arcgis 地理坐标系 699个,投影坐标系是4767
    arcgis python 参数类型和含义
    win10 svn commit无响应
    新建网站与新建Asp.Net Web 应用程序的区别
  • 原文地址:https://www.cnblogs.com/haibinggan-/p/9233452.html
Copyright © 2020-2023  润新知