zoukankan      html  css  js  c++  java
  • 【转】关于spring集合对象的补充

    <span style="font-size:18px;">关于spring集合对象的补充
    
    spring2.0中对集合对象有了改进,新增了一个<util>标签,这个标签在设置Bean定义时更为方便。
    
    要使用改标签,必须要在配置文件中加入util名称空间,如:
    
    xmlns:util="http://www.springframework.org/schema/util"
    
    http://www.springframework.org/schema/util
    
    http://www.springframework.org/schema/util/spring-util-2.0.xsc"
    
    在头文件中加入以上代码就可以使用util标签了
    
    util标签的使用:
    
    1,<util:constant/> 
    取代了之前通过FieldRetrevingFactoryBean获取bean静态常量的FactoryBean! 
    
    老的用法
    <bean id="..." class="..."> 
     <property name="isolation"> <bean id="java.sql.Connection.TRANSACTION_SERIALIZABLE"   
      class="org.springframework.beans.factory.config.FieldRetrievingFactoryBean" />  
     </property>
    </bean>
    
    新用法
    <bean id="..." class="..."> 
     <property name="isolation"> 
      <util:constant static-field="java.sql.Connection.TRANSACTION_SERIALIZABLE"/>  </property>
    </bean>
    
    2,<util:property-path/>
    取代了之前通过PropertyPathFactoryBean来指定属性路径获取属性值的FactoryBean! 
    
    老的用法
    <bean id="testBean" class="org.springframework.beans.TestBean" singleton="false">
     <property name="age" value="10"/> 
     <property name="spouse"> 
      <bean class="org.springframework.beans.TestBean"> 
       <property name="age" value="11"/> 
      </bean> 
     </property>
    </bean>
    <bean id="testBean.age" class="org.springframework.beans.factory.config.PropertyPathFactoryBean"/>
    
    新的用法
    <bean id="testBean" class="org.springframework.beans.TestBean" singleton="false">
     <property name="age" value="10"/> 
     <property name="spouse"> 
      <bean class="org.springframework.beans.TestBean"> 
       <property name="age" value="11"/> 
      </bean> 
     </property>
    </bean>
    <util:property-path id="name" path="testBean.age"/>
    
    3,<util:properties/>
    替代了之前通过PropertiesFactoryBean来获取properties配制文件数据的FactoryBean! 
    
    老用法
    <bean id="jdbcConfiguration" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
     <property name="location" value="classpath:com/foo/jdbc-production.properties"/>
    </bean>
    
    新用法
    <util:properties id="jdbcConfiguration" location="classpath:com/foo/jdbc-production.properties"/>
    
    
    4,<util:list/> 
    替代了之前通过<list><value></value></list>的内置配制方式,让多个bean调用同一list成为可能! 
    
    老的用法
    <bean id="emails" class="org.springframework.beans.factory.config.ListFactoryBean">  
     <property name="sourceList"> 
      <list> 
       <value>pechorin@hero.org</value> 
       <value>raskolnikov@slums.org</value> 
       <value>stavrogin@gov.org</value> 
       <value>porfiry@gov.org</value> 
      </list> 
     </property>
    </bean>
    
    新的用法
    <util:list id="emails" list-class="java.util.LinkedList"> 
     <value>pechorin@hero.org</value> 
     <value>raskolnikov@slums.org</value> 
     <value>stavrogin@gov.org</value> 
     <value>porfiry@gov.org</value>
    </util:list>
    
    5,<util:map/> 
    替代了之前适用<map><entry key=""><value></value></entry></map>的配置方式,让多个bean调用同一map成为可能! 
    
    老的用法
    <bean id="emails" class="org.springframework.beans.factory.config.MapFactoryBean">  
     <property name="sourceMap"> 
      <map> 
       <entry key="pechorin" value="pechorin@hero.org"/>
       <entry key="raskolnikov" value="raskolnikov@slums.org"/>
       <entry key="stavrogin" value="stavrogin@gov.org"/>
       <entry key="porfiry" value="porfiry@gov.org"/>
      </map> 
     </property>
    </bean>
    
    新的用法
    <util:map id="emails" map-class="java.util.TreeMap"> 
     <entry key="pechorin" value="pechorin@hero.org"/>
     <entry key="raskolnikov" value="raskolnikov@slums.org"/>
     <entry key="stavrogin" value="stavrogin@gov.org"/>
     <entry key="porfiry" value="porfiry@gov.org"/>
    </util:map>
    
    6,<util:set/> 
    替代了之前适用<set><value></value></set>的配置方式, 让多个bean调用同一set成为可能! 
    
    老的用法
    <bean id="emails" class="org.springframework.beans.factory.config.SetFactoryBean">
     <property name="sourceSet"> 
      <set> 
       <value>pechorin@hero.org</value> 
       <value>raskolnikov@slums.org</value> 
       <value>stavrogin@gov.org</value> 
       <value>porfiry@gov.org</value> 
      </set> 
     </property>
    </bean>
    
    新的用法
    <util:set id="emails" set-class="java.util.TreeSet"> 
     <value>pechorin@hero.org</value> 
     <value>raskolnikov@slums.org</value> 
     <value>stavrogin@gov.org</value> 
     <value>porfiry@gov.org</value>
    </util:set>
    
    7,<jee:jndi-lookup/>
    替代了之前使用JndiObjectFactoryBean指定配制获取容器JNDI资源的FactoryBean! 
    
    老的用法
    <bean id="simple" class="org.springframework.jndi.JndiObjectFactoryBean"> 
     <property name="jndiName" value="jdbc/MyDataSource"/> 
     <property name="cache" value="true"/> 
     <property name="resourceRef" value="true"/> 
     <property name="lookupOnStartup" value="false"/> 
     <property name="expectedType" value="com.myapp.DefaultFoo"/> 
     <property name="proxyInterface" value="com.myapp.Foo"/>
    </bean>
    
    新用法
    <jee:jndi-lookup id="simple" 
    jndi-name="jdbc/MyDataSource" 
    cache="true" 
    resource-ref="true" 
    lookup-on-startup="false" 
    expected-type="com.myapp.DefaultFoo" 
    proxy-interface="com.myapp.Foo"/>
    
    
    8,<jee:local-slsb/> 
    替代了之前使用LocalStatelessSessionProxyFactoryBean来获取无状态会话BEAN的FactoryBean! 
    
    老的用法
    <bean id="complexRemoteEjb" class="org.springframework.ejb.access.LocalStatelessSessionProxyFactoryBean">
     <property name="jndiName" value="ejb/MyRemoteBean"/> 
     <property name="businessInterface" value="com.foo.service.RentalService"/> 
     <property name="cacheHome" value="true"/> 
     <property name="lookupHomeOnStartup" value="true"/> 
     <property name="resourceRef" value="true"/> 
     <property name="homeInterface" value="com.foo.service.RentalService"/> 
     <property name="refreshHomeOnConnectFailure" value="true"/>
    </bean>
    
    新的用法
    <jee:remote-slsb id="complexRemoteEjb" 
    jndi-name="ejb/MyRemoteBean" 
    business-interface="com.foo.service.RentalService" 
    cache-home="true" 
    lookup-home-on-startup="true" resource-ref="true" homeinterface="com.foo.service.RentalService"
    refresh-home-on-connect-failure="true">
    
    </span>
  • 相关阅读:
    Ubuntu 14.04 卸载通过源码安装的库
    Ubuntu 14.04 indigo 相关依赖
    Ubuntu 14.04 indigo 安装 cartographer 1.0.0
    Ubuntu 14.04 改变文件或者文件夹的拥有者
    安装cartographer遇到Unrecognized syntax identifier "proto3". This parser only recognizes "proto2"问题
    Unrecognized syntax identifier "proto3". This parser only recognizes "proto2". ”问题解决方法
    查看所有用户组,用户名
    1卸载ROS
    Ubuntu14.04 软件安装卸载
    Ubuntu14.04系统显示器不自动休眠修改
  • 原文地址:https://www.cnblogs.com/tarena/p/6273540.html
Copyright © 2011-2022 走看看