zoukankan      html  css  js  c++  java
  • Spring依赖注入 — util命名空间配置

    要使用<util>标签,必须在XML中加入util名称空间(namespace):

    xmlns:util="http://http://www.springframework.org/schema/util"
    
    xsi:schemaLocation="http://www.springframework.org/schema/utilhttp://www.springframework.org/schema/util/spring-util-2.0.xsd"

    分别使用<util:list>、<util:map>、<util:set>、<util:properties>等标签。

    用它来取代ListFactoryBean、MapFactoryBean、SetFactoryBean、PropertiesFactoryBean。

    其中的<util:properties>标签可以通过location属性指定其properties属性文件的位置。

    除了以上使用的标签外,还有<util:constant>可用来设置静态数据成员(staticfield),而免于设置org.springframework.beans.factory.config.FieldRetrievingFactoryBean,例如:

    <bean id="circle" class="cn.itcast.spring._other.Circle">
    
    <property name="pi">
    
    <util:constant static-field="java.lang.Math.PI"/>
    
    </property>
    
    </bean>
    

      

     

    还可以使用<util:property-path>标签为某个Bean的属性成员设置id属性,使之在容器管理中,免于设置org.springframework.beans.factory.config.PropertyPathFactoryBean,例如:

    <!-- id值为PI的Bean,其值将会是circle.pi -->
    
    <util:property-path  id="PI" path="circle.pi"/>

    修改集合对象中示例的Bean定义文件

    <bean id="some1" class="cn.itcast.spring._util.Some">
    
      <property name="val" value="some instance1" />
    
    </bean>
    
    <bean id="some2" class="cn.itcast.spring._util.Some">
    
      <property name="val" value="some instance2" />
    
    </bean>
    
    <bean id="some3" class="cn.itcast.spring._util.Some">
    
      <property name="val" value="some instance3" />
    
    </bean>
    
    <util:list id="strArray">
    
      <value>Hello</value>
    
      <value>Welcome</value>
    
    </util:list>
    
    <util:list id="objArray">
    
      <ref bean="some1" />
    
      <ref bean="some2" />
    
      <ref bean="some3" />
    
    </util:list>
    
    <util:list id="list" list-class="java.util.ArrayList">
    
      <ref bean="some1"/>
    
      <ref bean="some2" />
    
      <ref bean="some3" />
    
    </util:list>
    
    <util:map id="map" map-class="java.util.HashMap" >
    
      <entry key="key1" value-ref="some1"/>
    
      <entry key="key2" value-ref="some2"/>
    
      <entry key="key3" value-ref="some3"/>
    
    </util:map>

     写完util配置文件后,如何给某个类赋值呢?也可以直接用配置的方式:

    <bean id="someBean" class="cn.itcast.spring._util.SomeBean">
    
      <property name="someStrArray" ref="strArray"/>
    
      <property name="someObjArray" ref="objArray"/>
    
      <property name="someList" ref="list"/>
    
      <property name="someMap" ref="map"/>
    
    </bean>

    或者在类中使用@Value注解

    @Value("#{strArray}")
    private List<String> somoeStrArray;
    @Value("#{objArray}")
    private List<Some> somoeObjArray;
    @Value("#{list}")
    private List<Some> somoeList;
    @Value("#{map}")
    private Map<String,Some> someMap;
  • 相关阅读:
    阿里云在云栖大会发布SaaS加速器3.0版最新成果,让天下没有难做的SaaS
    阿里云重磅发布全域集成解决方案,帮助提升5倍全域集成效率
    2019亚太内容分发大会,阿里云获CDN领袖奖、技术突破奖
    阿里云应用上边缘云解决方案助力互联网All in Cloud
    云栖大会压轴好戏 阿里云智能视频云专场划重点啦!
    阿里云研究员金戈:视频云新“三网一云”,驱动行业应用创新
    阿里云启动视频云V5计划,全面赋能生态合作伙伴
    数据库实例性能调优利器:Performance Insights
    n转m进制标准写法(必须记忆)
    傻逼暴力法画蛇皮矩阵图
  • 原文地址:https://www.cnblogs.com/Weagle/p/7568590.html
Copyright © 2011-2022 走看看