探索<util/>命名空间
首先在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=<A href="http://www.springframework.org/schema/util">http://www.springframework.org/schema/util</A>
-
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">
-
</A>
<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
http://www.springframework.org/schema/util/spring-util-2.0.xsd">
1. <util:constant/>元素
比如某类存在如下字段定义
这样就将java代码中的常量hwStatic(在test包下的HelloWorld类中)配置给spring进行管理,id为另起的名字;
又eg:
- <util:constant id="maxValue" static-field="java.lang.Integer.MAX_VALUE"/>
<util:constant id="maxValue" static-field="java.lang.Integer.MAX_VALUE"/>
2. <util:property-path/>元素
这里path="helloworld.hello"就是指bean为"helloworld"的属性hello。
3. <util:properties/>元素
"classpath:"表明,将从类路径上查找并装载xxx属性文件.
4. <util:list/>元素
它的作用就是在spring启动初始化bean时,给listUtil这个list赋值为这四个值。 下面的同理
5. <util:map/>元素
- <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" />
<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>
<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>
<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>
<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>
事情的发展总是一段曲折前进的过程。当Spring刚出现时,开发者可以使用<list/>、<map/>、<set/>等元素定义集合,然而这些集合不能够在不同的受管Bean间进行复用。尽管开发者可以采用抽象Bean机制实现复用,但实在不怎么优雅。与此同时,开发者借助ListFactoryBean、MapFactoryBean和SetFactoryBean等对象能够定义出可供复用的集合。然而,这也不是很友好的做法。再后来,<util/>命名空间被Spring 2.x引入,这才使得集合的定义变得简单。
分享到:
相关推荐
本文将以一个具体的例子——商丘地区集抄系统每日向中间库传输日冻结数据的过程——来介绍如何使用Spring框架中的`java.util.Timer`实现定时任务。 #### Java Timer的实现 1. **定义定时任务类** 首先,需要创建...
下面将详细介绍如何使用`util:命名空间`来简化Spring配置。 首先,`util:命名空间`的引入是在XML配置文件的根`<beans>`标签内,通过添加`xmlns:util`和对应的`xsi:schemaLocation`来完成的。例如: ```xml ...
spring-1 演示了使用setter方式及构造器方式创建bean,util:list标签创建集合,p标签简化配置 和依赖注入, 以及bean的autowire和继承与依赖,以及bean的作用域。 spring-2 演示了外部配置文件的引入(connection)...
Spring框架也有自己的标签库,如Spring Taglib,可以简化JSP页面中的Spring Bean引用。而在Freemarker中,可以通过扩展其API创建自定义指令,实现更复杂的逻辑或功能。 总结一下,Struts2、Spring和Freemarker的...
13.9. 使用Spring的表单标签库 13.9.1. 配置标签库 13.9.2. form标签 13.9.3. input标签 13.9.4. checkbox标签 13.9.5. radiobutton标签 13.9.6. password标签 13.9.7. select标签 13.9.8. option标签 13.9.9. ...
下面将详细介绍这些标签和文件在Spring框架中的作用。 1. `beans`: 这个文件包含了Spring框架核心的配置元素,如`<bean>`,用于定义和管理对象的实例。通过`<bean>`元素,我们可以指定类名、属性、依赖关系以及初始...
- **util scheme 定义集合**:Spring提供了`util:`命名空间来更简洁地定义集合,如: ```xml <util:list id="myList"> <value>value1 <value>value2 </util:list> ``` - **p命名空间**:在XML配置中,可以使用...
`P()`函数则用于访问属性路径,通常与XML配置文件中的`<beans:property/>`标签一起使用。 8. ** spel表达式在AOP中的应用** 在Spring AOP中,SpEL可用于定义切面的切入点表达式,如`execution(* ...
在Spring 3版本中,DTD(Document Type Definition)被广泛使用来定义XML配置文件的结构和约束。DTD是一种元数据,它定义了XML文档的元素、属性以及它们之间的关系,确保了配置文件的合法性。 在Spring框架中,DTD...
13.9. 使用Spring的表单标签库 13.9.1. 配置标签库 13.9.2. form标签 13.9.3. input标签 13.9.4. checkbox标签 13.9.5. radiobutton标签 13.9.6. password标签 13.9.7. select标签 13.9.8. option标签 13.9...
在上面的例子中,我们使用`<property>`标签实现了属性注入,如`name`和`age`。此外,还可以通过`ref`属性进行对象之间的依赖注入,如: ```xml <bean id = "userDao" class = "spring.dbconnect.UserDaoImpl"> ...
13.9. 使用Spring的表单标签库 13.9.1. 配置 13.9.2. form标签 13.9.3. input标签 13.9.4. checkbox标签 13.9.5. checkboxes标签 13.9.6. radiobutton标签 13.9.7. radiobuttons标签 13.9.8. password标签 ...
简单邮件 HTML 邮件 内嵌图片或附档 排程 Spring则对 java.util.Timer提供了抽象封装,让您可以善用Spring的容器管理功能,而Spring对Quartz进行了封装,让它在使用上更加方便。 使用 ...
5. **commons-logging-1.2**:这是Apache Commons Logging库,提供了一种统一的日志接口,可以根据配置使用不同的日志实现,如log4j、java.util.logging等。 6. **standard**:可能指的是Javax Servlet API,它是...
13.9. 使用Spring的表单标签库 13.9.1. 配置 13.9.2. form标签 13.9.3. input标签 13.9.4. checkbox标签 13.9.5. checkboxes标签 13.9.6. radiobutton标签 13.9.7. radiobuttons标签 13.9.8. password标签 ...
13.9. 使用Spring的表单标签库 13.9.1. 配置标签库 13.9.2. form标签 13.9.3. input标签 13.9.4. checkbox标签 13.9.5. radiobutton标签 13.9.6. password标签 13.9.7. select标签 13.9.8. option标签 13.9...
Spring框架内部使用了这个库进行日志输出,它允许开发者选择不同的底层日志实现,如Log4j、java.util.logging或logback,提供了一致的日志接口,增强了日志系统的灵活性。 结合"标签"中的"MySQL",我们可以推测这个...
与Spring集成后,可以使用Spring提供的标签来简化Quartz的配置,使得整个任务调度更加方便。 总结来说,定时任务是开发者常用的一种工具,它的实现方式多样,从简单的Java Timer到强大的Quartz框架都有涉及。Spring...
- `<create>`标签定义了一个可以被远程调用的服务,其中`creator`属性设为`spring`表示该服务由Spring容器管理,`javascript`属性指定了客户端调用时的JavaScript对象名称。 - `<param>`标签用于指定该服务在...