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>
  • 相关阅读:
    SSH 错误解决案例1:Read from socket failed: Connection reset by peer
    vmware已经全面支持open-vm-tools
    RHEL7.1 安装openstack juno 一个BUG
    web快速开发框架 WebBuilder 8.7发布
    2019年如何选择合适的快速开发平台和框架
    快速开发平台 WebBuilder 8.6发布
    快速开发平台比较
    快速开发平台 WebBuilder 8.4 发布
    快速开发平台 WebBuilder 8 发布
    快速开发平台WebBuilder中ExtJS表格的增删改查
  • 原文地址:https://www.cnblogs.com/tarena/p/6273540.html
Copyright © 2011-2022 走看看