Spring的util标签的使用

探索命名空间

首先在spring的配置文件中添加

Xml 代码
  1. xmlns="http://www.springframework.org/schema/beans"
  2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xmlns:p="http://www.springframework.org/schema/p"
  4. xmlns:util= href="http://www.springframework.org/schema/util">http://www.springframework.org/schema/util
  5. xsi:schemaLocation="http://www.springframework.org/schema/beans
  6. http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
  7. http://www.springframework.org/schema/util
  8. href="http://www.springframework.org/schema/util/spring-util-2.0.xsd">http://www.springframework.org/schema/util/spring-util-2.0.xsd">
 

1. 元素

比如某类存在如下字段定义

Java代码
  1. public static final String hwStatic = "hello static constant";
public static final String hwStatic = "hello static constant";
如果希望以上属性取值作为受管Bean,可以如下配置: Xml代码

这样就将java代码中的常量hwStatic(在test包下的HelloWorld类中)配置给spring进行管理,id为另起的名字;

又eg:

Xml代码
  1. id="maxValue" static-field="java.lang.Integer.MAX_VALUE"/>

2. 元素

Xml代码
  1. id="property-path" path="helloWorld.hello"/>
id="property-path" path="helloWorld.hello"/>     

这里path="helloworld.hello"就是指bean为"helloworld"的属性hello。

3. 元素

"classpath:"表明,将从类路径上查找并装载xxx属性文件.

Xml代码
 

4. 元素

Xml代码
  1. first
  2. two
  3. three
  4. ten
    first    two    three    ten

它的作用就是在spring启动初始化bean时,给listUtil这个list赋值为这四个值。 下面的同理

5. 元素

Xml代码
                                                
继承了abstractCollectionBean的子bean Xml代码
  1. id="CollectionBean" class="test.CollectionBean" parent="abstractCollectionBean">
  2. name="map">
  3. merge="true" key-type="java.lang.String" value-type="java.lang.String">
  4. key="mapKey1" value="http://zchuan-2006.iteye.com/blog/mapValue1Override"/>
  5. mapKey2
  6. mapValue2
  7. key="testBean" value-ref="testBean">
  8. id="testBean" class="test.TestBean" />
                                                    mapKey2                mapValue2                                    

为了简化MapFactoryBean对象的使用,可使用如下代码 :

Xml代码
  1. id="mapUtil" map-class="java.util.HashMap">
  2. key="1" value="http://zchuan-2006.iteye.com/blog/first">
  3. key="2" value="http://zchuan-2006.iteye.com/blog/two">
  4. key="3" value="http://zchuan-2006.iteye.com/blog/three">
            

6. 元素

同样的,为了简化SetFactoryBean对象,可使用如下代码 :

Xml代码
  1. id="setUtil" set-class="java.util.HashSet">
  2. first
  3. two
  4. three
    first    two    three

7. 使用

命名空间

在xml头加入 xmlns:p=http://www.springframework.org/schema/p;这里的p就是property的意思。

例如如下代码:

Xml代码
  1. id="propertyPlaceholderConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  2. name="locations" ref="locations"/>
  3. name="order" value="http://zchuan-2006.iteye.com/blog/1"/>

  4. id="locations">
  5. userinfo.properties
            userinfo.properties

在导入了

命名空间后,等价于

Xml代码
  1. id="propertyPlaceholderConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" p:locations-ref="locations" p:order="1" />

  2. id="locations">
  3. userinfo.properties

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

你可能感兴趣的:(Spring学习)