`

关于spring中<util:**/>的配置

 
阅读更多
原文http://lehsyh.iteye.com/blog/687752
参考: http://www.java2s.com/Code/Java/Spring/CreateListMapInContext.htm

探索<util/>命名空间
     事情的发展总是一段曲折前进的过程。当Spring刚出现时,开发者可以使用<list/>、<map/>、<set/>等元素定义集合,然而这些集合不能够在不同的受管Bean间进行复用。尽管开发者可以采用抽象Bean机制实现复用,但实在不怎么优雅。与此同时,开发者借助ListFactoryBean、MapFactoryBean和SetFactoryBean等对象能够定义出可供复用的集合。然而,这也不是很友好的做法。再后来,<util/>命名空间被Spring 2.x引入,这才使得集合的定义变得简单。

首先在spring的配置文件中添加
<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/>元素
比如某类存在如下字段定义  
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:
<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属性文件.  
<util:properties id="xxx" location="classpath:xxxxx.properties">  


4. <util:list/>元素 
<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/>元素
<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
原创地址:http://wutheringsea.iteye.com/blog/647924
分享到:
评论

相关推荐

    springboot 基础简易实例, maven项目

    &lt;artifactId&gt;spring-boot-starter-parent&lt;/artifactId&gt; &lt;version&gt;2.1.4.RELEASE&lt;/version&gt; &lt;relativePath/&gt; &lt;!-- lookup parent from repository --&gt; &lt;/parent&gt; &lt;groupId&gt;com.example&lt;/groupId&gt; &lt;artifactId&gt;...

    SSM三大框架的整合.docx

    &lt;bean class="ch.qos.logback.classic.util.ContextInitializer"&gt; &lt;property name="contextName" value="application" /&gt; &lt;property name="configLocation" ref="logbackConfigLocation" /&gt; &lt;/bean&gt; &lt;!-- 扫描 ...

    简单SpringMVC环境搭建项目代码

    &lt;groupId&gt;org.springframework&lt;/groupId&gt; &lt;artifactId&gt;spring-webmvc&lt;/artifactId&gt; &lt;version&gt;5.3.16&lt;/version&gt; &lt;/dependency&gt; &lt;!-- Servlet API --&gt; &lt;dependency&gt; &lt;groupId&gt;javax.servlet&lt;/groupId&gt; ...

    spring mvc架构搭建,实现简单的查询用户查询功能

    &lt;groupId&gt;org.springframework&lt;/groupId&gt; &lt;artifactId&gt;spring-webmvc&lt;/artifactId&gt; &lt;version&gt;5.x.x.RELEASE&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.mybatis&lt;/groupId&gt; &lt;artifactId&gt;mybatis&lt;/...

    Spring相关测试1

    1. **XML配置**:在`applicationContext.xml`文件中,通过`&lt;bean&gt;`标签定义Bean。例如: ```xml &lt;bean id="myBean" class="com.example.MyClass"&gt; &lt;!-- 属性注入 --&gt; &lt;property name="prop1" value="value1"/&gt; ...

    Spring中的结合配置

    此外,使用`&lt;util:map&gt;`、`&lt;util:list&gt;`和`&lt;util:set&gt;`元素(引入了` xmlns:util="http://www.springframework.org/schema/util"`命名空间)可以提供更丰富的配置选项,如类型安全的注入和自定义初始化逻辑。...

    spring_MVC源码

    09. &lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener&lt;/listener-class&gt; 10. &lt;/listener&gt; 11. 12. &lt;servlet&gt; 13. &lt;servlet-name&gt;spring&lt;/servlet-name&gt; 14. &lt;servlet-class&gt;org.spring...

    Spring总结.txt

    - **`&lt;util:list&gt;`标签**:可以使用`&lt;util:list&gt;`标签来简化List类型的配置。 ```xml &lt;util:list id="cars"&gt; &lt;ref bean="car"/&gt; &lt;ref bean="car2"/&gt; &lt;/util:list&gt; ``` - **`p:`命名空间**:通过`p:`命名...

    xFire与Spring集成

    &lt;listener-class&gt;org.springframework.web.util.Log4jConfigListener&lt;/listener-class&gt; &lt;/listener&gt; &lt;servlet&gt; &lt;servlet-name&gt;xfire&lt;/servlet-name&gt; &lt;servlet-class&gt;org.springframework.web.servlet....

    acegi在spring中的完整配置

    随着 Spring Security 的发展,Acegi 已被 Spring Security 继承并进一步增强,但理解 Acegi 在 Spring 中的配置仍然对理解 Spring Security 的工作原理有所帮助。 在 Spring 中配置 Acegi,主要涉及以下几个关键...

    spring boot + mybatis xml + jsp

    现在我们将深入探讨如何在Spring Boot项目中集成MyBatis的XML配置,并支持JSP视图解析。 首先,为了在Spring Boot项目中引入MyBatis,我们需要在`pom.xml`文件中添加MyBatis及其依赖,包括Spring Boot对MyBatis的...

    mybatis开发教程.docx

    &lt;groupId&gt;org.mybatis.spring&lt;/groupId&gt; &lt;artifactId&gt;mybatis-spring&lt;/artifactId&gt; &lt;version&gt;2.0.6&lt;/version&gt; &lt;/dependency&gt; &lt;!-- MySQL 驱动 --&gt; &lt;dependency&gt; &lt;groupId&gt;mysql&lt;/groupId&gt; &lt;artifactId&gt;mysql...

    spring整合dwr

    &lt;script src="/dwr/util.js"&gt;&lt;/script&gt; &lt;script&gt; window.onload = function() { MyService.getData(function(data) { document.getElementById("result").innerHTML = data; }); }; &lt;/script&gt; &lt;/head&gt; &lt;body...

    mybatis+spring 框架中配置日志中显示sql语句

    3. **Spring整合MyBatis配置**:在Spring的配置文件(如`applicationContext.xml`)中,配置SqlSessionFactoryBean时,启用日志打印。这可以通过设置`configLocation`属性指向一个MyBatis的配置文件,例如`mybatis-...

    SpringMVC-SSH全注解

    &lt;bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"&gt; &lt;property name="dataSource" ref="dataSource" /&gt; &lt;property name="packagesToScan"&gt; ...

    两种方式通过spring实现定时执行任务操作

    在Spring框架中,定时任务是应用开发中常见需求,例如数据清理、日志备份或定期发送邮件等。本文将详细讲解两种通过Spring实现定时任务的方法:Spring的`TimerTask`和`Spring Batch`的`Tasklet`。我们将涵盖这两种...

    spring-util-4.2.xsd.zip

    `spring-util-4.2.xsd.txt`文件可能是一个文本格式的说明文档,详细解释了`spring-util-4.2.xsd`中的元素和属性,这对于理解如何使用`&lt;util&gt;`命名空间配置Spring框架是非常有价值的。 总的来说,`spring-util-4.2....

    SSH2整合详细示例

    &lt;groupId&gt;org.springframework&lt;/groupId&gt; &lt;artifactId&gt;spring-context&lt;/artifactId&gt; &lt;version&gt;5.x&lt;/version&gt; &lt;/dependency&gt; &lt;!-- MySQL驱动 --&gt; &lt;dependency&gt; &lt;groupId&gt;mysql&lt;/groupId&gt; &lt;artifactId&gt;mysql...

    ssha 最新 最完整 配置信息

    **表格17**: WEB-INF/dwr.xml配置文件中关于springbean的调用(必需设置) ```xml &lt;dwr:direct object-ref="myService" scriptName="myService"&gt; &lt;dwr:remote-method name="doSomething" return="java.lang.String"&gt;...

    cas 配置client 1.0 &2.0 及proxy DEMO 说明

    &lt;filter-name&gt;CAS Filter&lt;/filter-name&gt; &lt;filter-class&gt; edu.yale.its.tp.cas.client.filter.CASFilter &lt;/filter-class&gt; &lt;!-- server login url --&gt; &lt;init-param&gt; &lt;param-name&gt; edu.yale.its.tp...

Global site tag (gtag.js) - Google Analytics