關於spring中的配置

解決redis設置緩存時間找到的帖子,我這個初學者須要學習的仍是不少的。html

原文地址:http://www.doc100.net/bugs/t/216322/index.htmljava

探索<util/>命名空間      事情的發展老是一段曲折前進的過程。當Spring剛出現時,開發者能夠使用<list/>、<map/>、<set/>等元素定義集合,然而這些集合不可以在不一樣的受管Bean間進行復用。儘管開發者能夠採用抽象Bean機制實現複用,但實在不怎麼優雅。與此同時,開發者藉助ListFactoryBean、MapFactoryBean和SetFactoryBean等對象可以定義出可供複用的集合。然而,這也不是很友好的作法。再後來,<util/>命名空間被Spring 2.x引入,這才使得集合的定義變得簡單。 
首先在spring的配置文件中添加redis

<beans  
 xmlns="http://www.springframework.org/schema/beans"  
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
 xmlns:p="http://www.springframework.org/schema/p"  
 xmlns:util="http://www.springframework.org/schema/util"
 xsi:schemaLocation="http://www.springframework.org/schema/beans   
                     http://www.springframework.org/schema/beans/spring-beans-2.0.xsd  
                     http://www.springframework.org/schema/util  
                     <a href="http://www.springframework.org/schema/util/spring-util-2.0.xsd">http://www.springframework.org/schema/util/spring-util-2.0.xsd">

  
1. <util:constant/>元素 好比某類存在以下字段定義  spring

public static final String hwStatic = "hello static constant"; 

若是但願以上屬性取值做爲受管Bean,能夠以下配置:  緩存

<util:constant id="hwConstant" static-field="test.HelloWorld.hwStatic"/>  

這樣就將java代碼中的常量hwStatic(在test包下的HelloWorld類中)配置給spring進行管理,id爲另起的名字; 又eg:ide

<util:constant id="maxValue" static-field="java.lang.Integer.MAX_VALUE"/>  

  2. <util:property-path/>元素 學習

<bean id="property-path" path="helloWorld.hello"/>  
<bean id="helloWorld" class="test.HelloWorld">  
     <property name="hello" value="hi"/>  
</bean> 

這裏path="helloworld.hello"就是指bean爲"helloworld"的屬性hello。
3. <util:properties/>元素     "classpath:"代表,將從類路徑上查找並裝載xxx屬性文件.  spa

<util:properties id="xxx" location="classpath:xxxxx.properties">  

4. <util:list/>元素 .net

<util:list id="listUtil" list-class="java.util.ArrayList">  
    <value>first</valuse>  
    <value>two</valuse>  
    <value>three</valuse>  
    <value>ten</valuse>  
</util:list> 

它的做用就是在spring啓動初始化bean時,給listUtil這個list賦值爲這四個值。 下面的同理
5. <util:map/>元素code

<bean id="abstractCollectionBean" abstract="true">  
    <property name="map">  
        <map>  
            <entry key="mapKey1" value="mapValue1">  
            <entry key="mapKey2" value="mapValue2">  
        </map>  
    </property>  
</bean>

     繼承了abstractCollectionBean的子bean  

<bean id="CollectionBean"  class="test.CollectionBean" parent="abstractCollectionBean">  
    <property name="map">  
        <map merge="true" key-type="java.lang.String" value-type="java.lang.String">  
            <entry key="mapKey1" value="mapValue1Override"/>  
            <entry>  
                <key><value>mapKey2</value></key>  
                <value>mapValue2</value>  
            </entry>  
            <entry key="testBean" value-ref="testBean">  
        </map>  
    </property>  
</bean>  
<bean id="testBean" class="test.TestBean" /> 

       爲了簡化MapFactoryBean對象的使用,可以使用以下代碼 :

<util:map id="mapUtil" map-class="java.util.HashMap">  
    <entry key="1" value="first">  
    <entry key="2" value="two">  
    <entry key="3" value="three">  
</util:map>  

   6. <util:set/>元素    一樣的,爲了簡化SetFactoryBean對象,可以使用以下代碼 :

<util:set id="setUtil" set-class="java.util.HashSet">  
    <value>first</value>  
    <value>two</value>  
    <value>three</value>  
</util:set>  

7. 使用<p/>命名空間     在xml頭加入 xmlns:p=http://www.springframework.org/schema/p;這裏的p就是property的意思。        例如以下代碼:  

<bean id="propertyPlaceholderConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">  
    <property name="locations" ref="locations"/>  
    <property name="order" value="1"/>  
</bean>  
  
<util:list id="locations">  
    <value>userinfo.properties</value>  
</util:list> 

    在導入了</p>命名空間後,等價於  

<bean id="propertyPlaceholderConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"  p:locations-ref="locations" p:order="1" />    
      
<util:list id="locations">     
    <value>userinfo.properties</value>     
</util:list>

            實例:http://blog.csdn.net/daryl715/archive/2007/09/26/1802292.aspx

相關文章
相關標籤/搜索