解決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