Spring2.0配置中的新标签应用
2009-08-31 01:03
357 查看
1,<util:constant/>
取代了之前通过FieldRetrevingFactoryBean获取bean静态常量的FactoryBean!
老的用法
<bean id="..." class="...">
<property name="isolation">
<bean id="java.sql.Connection.TRANSACTION_SERIALIZABLE"
class="org.springframework.beans.factory.config.FieldRetrievingFactoryBean" />
</property>
</bean>
新用法
<bean id="..." class="...">
<property name="isolation">
<util:constant static-field="java.sql.Connection.TRANSACTION_SERIALIZABLE"/>
</property>
</bean>
2,<util:property-path/>
取代了之前通过PropertyPathFactoryBean来指定属性路径获取属性值的FactoryBean!
老的用法
<bean id="testBean" class="org.springframework.beans.TestBean" singleton="false">
<property name="age" value="10"/>
<property name="spouse">
<bean class="org.springframework.beans.TestBean">
<property name="age" value="11"/>
</bean>
</property>
</bean>
<bean id="testBean.age" class="org.springframework.beans.factory.config.PropertyPathFactoryBean"/>
新的用法
<bean id="testBean" class="org.springframework.beans.TestBean" singleton="false">
<property name="age" value="10"/>
<property name="spouse">
<bean class="org.springframework.beans.TestBean">
<property name="age" value="11"/>
</bean>
</property>
</bean>
<util:property-path id="name" path="testBean.age"/>
3,<util:properties/>
替代了之前通过PropertiesFactoryBean来获取properties配制文件数据的FactoryBean!
老用法
<bean id="jdbcConfiguration" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="location" value="http://www.zhmy.com/classpath:com/foo/jdbc-production.properties"/>
</bean>
新用法
<util:properties id="jdbcConfiguration" location="classpath:com/foo/jdbc-production.properties"/>
4,<util:list/>
替代了之前通过<list><value></value></list>的内置配制方式,让多个bean调用同一list成为可能!
老的用法
<bean id="emails" class="org.springframework.beans.factory.config.ListFactoryBean">
<property name="sourceList">
<list>
<value>pechorin@hero.org</value>
<value>raskolnikov@slums.org</value>
<value>stavrogin@gov.org</value>
<value>porfiry@gov.org</value>
</list>
</property>
</bean>
新的用法
<util:list id="emails" list-class="java.util.LinkedList">
<value>pechorin@hero.org</value>
<value>raskolnikov@slums.org</value>
<value>stavrogin@gov.org</value>
<value>porfiry@gov.org</value>
</util:list>
5,<util:map/>
替代了之前适用<map><entry key=""><value></value></entry></map>的配置方式,让多个bean调用同一map成为可能!
老的用法
<bean id="emails" class="org.springframework.beans.factory.config.MapFactoryBean">
<property name="sourceMap">
<map>
<entry key="pechorin" value="pechorin@hero.org"/>
<entry key="raskolnikov" value="raskolnikov@slums.org"/>
<entry key="stavrogin" value="stavrogin@gov.org"/>
<entry key="porfiry" value="porfiry@gov.org"/>
</list>
</property>
</bean>
新的用法
<util:map id="emails" map-class="java.util.TreeMap">
<entry key="pechorin" value="pechorin@hero.org"/>
<entry key="raskolnikov" value="raskolnikov@slums.org"/>
<entry key="stavrogin" value="stavrogin@gov.org"/>
<entry key="porfiry" value="porfiry@gov.org"/>
</util:map>
6,<util:set/>
替代了之前适用<set><value></value></set>的配置方式,
让多个bean调用同一set成为可能!
老的用法
<bean id="emails" class="org.springframework.beans.factory.config.SetFactoryBean">
<property name="sourceSet">
<set>
<value>pechorin@hero.org</value>
<value>raskolnikov@slums.org</value>
<value>stavrogin@gov.org</value>
<value>porfiry@gov.org</value>
</set>
</property>
</bean>
新的用法
<util:set id="emails" set-class="java.util.TreeSet">
<value>pechorin@hero.org</value>
<value>raskolnikov@slums.org</value>
<value>stavrogin@gov.org</value>
<value>porfiry@gov.org</value>
</util:set>
7,<jee:jndi-lookup/>
替代了之前使用JndiObjectFactoryBean指定配制获取容器JNDI资源的FactoryBean!
老的用法
<bean id="simple" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="jdbc/MyDataSource"/>
<property name="cache" value="true"/>
<property name="resourceRef" value="true"/>
<property name="lookupOnStartup" value="false"/>
<property name="expectedType" value="http://www.zhmy.com/com.myapp.DefaultFoo"/>
<property name="proxyInterface" value="http://www.zhmy.com/com.myapp.Foo"/>
</bean>
新用法
<jee:jndi-lookup id="simple"
jndi-name="jdbc/MyDataSource"
cache="true"
resource-ref="true"
lookup-on-startup="false"
expected-type="com.myapp.DefaultFoo"
proxy-interface="com.myapp.Foo"/>
8,<jee:local-slsb/>
替代了之前使用LocalStatelessSessionProxyFactoryBean来获取无状态会话BEAN的FactoryBean!
老的用法
<bean id="complexRemoteEjb"
class="org.springframework.ejb.access.LocalStatelessSessionProxyFactoryBean">
<property name="jndiName" value="ejb/MyRemoteBean"/>
<property name="businessInterface" value="http://www.zhmy.com/com.foo.service.RentalService"/>
<property name="cacheHome" value="true"/>
<property name="lookupHomeOnStartup" value="true"/>
<property name="resourceRef" value="true"/>
<property name="homeInterface" value="http://www.zhmy.com/com.foo.service.RentalService"/>
<property name="refreshHomeOnConnectFailure" value="true"/>
</bean>
新的用法
<jee:remote-slsb id="complexRemoteEjb"
jndi-name="ejb/MyRemoteBean"
business-interface="com.foo.service.RentalService"
cache-home="true"
lookup-home-on-startup="true"
resource-ref="true"
home-interface="com.foo.service.RentalService"
refresh-home-on-connect-failure="true">
Spring2.0在配置上调整了不少地方,增加更加灵活、简洁的配置方式,本文通过两个简单的示例来演示。
配置Apache的一个数据源连接池,在Spring 2.0以前的版本中,我们可以使用类似下面的配置:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName">
<value>org.gjt.mm.mysql.Driver</value></property>
<property name="url">
<value>jdbc:mysql://127.0.0.1:3306/easyjf-bbs</value> </property>
<property name="username"><value>root</value> </property>
<property name="password"><value>mypass</value></property>
</bean>
</beans>
在Spring2.0中,可以把<value>及<ref>两个标签作为其父级<bean>标签的一个属性来定义,这样使得配置文件更加简洁,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName"
value="http://www.zhmy.com/org.gjt.mm.mysql.Driver" />
<property name="url"
value="http://www.zhmy.com/jdbc:mysql://127.0.0.1:3306/easyjf-bbs" />
<property name="username" value="root" />
<property name="password" value="mypass" />
</bean>
</beans>
另外,Spring2.0中还有一个非常实用的解析器,SimplePropertyNamespaceHandle,若配置文件中引http://www.springframework.org/schema/p命令空间,则将会使用SimplePropertyNamespaceHandle来处理这个Bean的定义,可以在Spring2.0中的Bean中以更简单的方式配置设值方法注入,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<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"
xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"
p:driverClassName="org.gjt.mm.mysql.Driver"
p:url="jdbc:mysql://127.0.0.1:3306/easyjf-bbs" p:username="root" p:password="mysql" />
</beans>
在上面的配置中,使用p:url则可以直接注入BasicDataSource的url属性值,可以使用p:url-ref属性来引用另外一个Bean。
如,Spring2.0以前的一个DAO配置:
<bean id="userDao" class="com.easyjf.bbs.dbo.springjdbc.UserDaoSpringJdbc">
<property name="dataSource"><ref bean="dataSource"/></property>
</bean>
使用简短属性方式,则改成如下:
<bean id="userDao" class="com.easyjf.bbs.dbo.springjdbc.UserDaoSpringJdbc" p:dataSource-ref="dataSource" />
Spring2.0比以前的版本配置更加灵活、简洁,如果手工书写配置,则比较实用。当然,老的配置方式有很多开发工具如MyEclipse等都能识别,不需要我们动手一点一点的录入配置文件,大多数工具对新的配置方式还不能识别,因此,请根据实际情况酌情使用。
来源:http://hi.baidu.com/lin_zy/blog/item/500e28d1aff7e7d7562c8449.html
取代了之前通过FieldRetrevingFactoryBean获取bean静态常量的FactoryBean!
老的用法
<bean id="..." class="...">
<property name="isolation">
<bean id="java.sql.Connection.TRANSACTION_SERIALIZABLE"
class="org.springframework.beans.factory.config.FieldRetrievingFactoryBean" />
</property>
</bean>
新用法
<bean id="..." class="...">
<property name="isolation">
<util:constant static-field="java.sql.Connection.TRANSACTION_SERIALIZABLE"/>
</property>
</bean>
2,<util:property-path/>
取代了之前通过PropertyPathFactoryBean来指定属性路径获取属性值的FactoryBean!
老的用法
<bean id="testBean" class="org.springframework.beans.TestBean" singleton="false">
<property name="age" value="10"/>
<property name="spouse">
<bean class="org.springframework.beans.TestBean">
<property name="age" value="11"/>
</bean>
</property>
</bean>
<bean id="testBean.age" class="org.springframework.beans.factory.config.PropertyPathFactoryBean"/>
新的用法
<bean id="testBean" class="org.springframework.beans.TestBean" singleton="false">
<property name="age" value="10"/>
<property name="spouse">
<bean class="org.springframework.beans.TestBean">
<property name="age" value="11"/>
</bean>
</property>
</bean>
<util:property-path id="name" path="testBean.age"/>
3,<util:properties/>
替代了之前通过PropertiesFactoryBean来获取properties配制文件数据的FactoryBean!
老用法
<bean id="jdbcConfiguration" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="location" value="http://www.zhmy.com/classpath:com/foo/jdbc-production.properties"/>
</bean>
新用法
<util:properties id="jdbcConfiguration" location="classpath:com/foo/jdbc-production.properties"/>
4,<util:list/>
替代了之前通过<list><value></value></list>的内置配制方式,让多个bean调用同一list成为可能!
老的用法
<bean id="emails" class="org.springframework.beans.factory.config.ListFactoryBean">
<property name="sourceList">
<list>
<value>pechorin@hero.org</value>
<value>raskolnikov@slums.org</value>
<value>stavrogin@gov.org</value>
<value>porfiry@gov.org</value>
</list>
</property>
</bean>
新的用法
<util:list id="emails" list-class="java.util.LinkedList">
<value>pechorin@hero.org</value>
<value>raskolnikov@slums.org</value>
<value>stavrogin@gov.org</value>
<value>porfiry@gov.org</value>
</util:list>
5,<util:map/>
替代了之前适用<map><entry key=""><value></value></entry></map>的配置方式,让多个bean调用同一map成为可能!
老的用法
<bean id="emails" class="org.springframework.beans.factory.config.MapFactoryBean">
<property name="sourceMap">
<map>
<entry key="pechorin" value="pechorin@hero.org"/>
<entry key="raskolnikov" value="raskolnikov@slums.org"/>
<entry key="stavrogin" value="stavrogin@gov.org"/>
<entry key="porfiry" value="porfiry@gov.org"/>
</list>
</property>
</bean>
新的用法
<util:map id="emails" map-class="java.util.TreeMap">
<entry key="pechorin" value="pechorin@hero.org"/>
<entry key="raskolnikov" value="raskolnikov@slums.org"/>
<entry key="stavrogin" value="stavrogin@gov.org"/>
<entry key="porfiry" value="porfiry@gov.org"/>
</util:map>
6,<util:set/>
替代了之前适用<set><value></value></set>的配置方式,
让多个bean调用同一set成为可能!
老的用法
<bean id="emails" class="org.springframework.beans.factory.config.SetFactoryBean">
<property name="sourceSet">
<set>
<value>pechorin@hero.org</value>
<value>raskolnikov@slums.org</value>
<value>stavrogin@gov.org</value>
<value>porfiry@gov.org</value>
</set>
</property>
</bean>
新的用法
<util:set id="emails" set-class="java.util.TreeSet">
<value>pechorin@hero.org</value>
<value>raskolnikov@slums.org</value>
<value>stavrogin@gov.org</value>
<value>porfiry@gov.org</value>
</util:set>
7,<jee:jndi-lookup/>
替代了之前使用JndiObjectFactoryBean指定配制获取容器JNDI资源的FactoryBean!
老的用法
<bean id="simple" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="jdbc/MyDataSource"/>
<property name="cache" value="true"/>
<property name="resourceRef" value="true"/>
<property name="lookupOnStartup" value="false"/>
<property name="expectedType" value="http://www.zhmy.com/com.myapp.DefaultFoo"/>
<property name="proxyInterface" value="http://www.zhmy.com/com.myapp.Foo"/>
</bean>
新用法
<jee:jndi-lookup id="simple"
jndi-name="jdbc/MyDataSource"
cache="true"
resource-ref="true"
lookup-on-startup="false"
expected-type="com.myapp.DefaultFoo"
proxy-interface="com.myapp.Foo"/>
8,<jee:local-slsb/>
替代了之前使用LocalStatelessSessionProxyFactoryBean来获取无状态会话BEAN的FactoryBean!
老的用法
<bean id="complexRemoteEjb"
class="org.springframework.ejb.access.LocalStatelessSessionProxyFactoryBean">
<property name="jndiName" value="ejb/MyRemoteBean"/>
<property name="businessInterface" value="http://www.zhmy.com/com.foo.service.RentalService"/>
<property name="cacheHome" value="true"/>
<property name="lookupHomeOnStartup" value="true"/>
<property name="resourceRef" value="true"/>
<property name="homeInterface" value="http://www.zhmy.com/com.foo.service.RentalService"/>
<property name="refreshHomeOnConnectFailure" value="true"/>
</bean>
新的用法
<jee:remote-slsb id="complexRemoteEjb"
jndi-name="ejb/MyRemoteBean"
business-interface="com.foo.service.RentalService"
cache-home="true"
lookup-home-on-startup="true"
resource-ref="true"
home-interface="com.foo.service.RentalService"
refresh-home-on-connect-failure="true">
Spring2.0在配置上调整了不少地方,增加更加灵活、简洁的配置方式,本文通过两个简单的示例来演示。
配置Apache的一个数据源连接池,在Spring 2.0以前的版本中,我们可以使用类似下面的配置:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName">
<value>org.gjt.mm.mysql.Driver</value></property>
<property name="url">
<value>jdbc:mysql://127.0.0.1:3306/easyjf-bbs</value> </property>
<property name="username"><value>root</value> </property>
<property name="password"><value>mypass</value></property>
</bean>
</beans>
在Spring2.0中,可以把<value>及<ref>两个标签作为其父级<bean>标签的一个属性来定义,这样使得配置文件更加简洁,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName"
value="http://www.zhmy.com/org.gjt.mm.mysql.Driver" />
<property name="url"
value="http://www.zhmy.com/jdbc:mysql://127.0.0.1:3306/easyjf-bbs" />
<property name="username" value="root" />
<property name="password" value="mypass" />
</bean>
</beans>
另外,Spring2.0中还有一个非常实用的解析器,SimplePropertyNamespaceHandle,若配置文件中引http://www.springframework.org/schema/p命令空间,则将会使用SimplePropertyNamespaceHandle来处理这个Bean的定义,可以在Spring2.0中的Bean中以更简单的方式配置设值方法注入,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<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"
xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"
p:driverClassName="org.gjt.mm.mysql.Driver"
p:url="jdbc:mysql://127.0.0.1:3306/easyjf-bbs" p:username="root" p:password="mysql" />
</beans>
在上面的配置中,使用p:url则可以直接注入BasicDataSource的url属性值,可以使用p:url-ref属性来引用另外一个Bean。
如,Spring2.0以前的一个DAO配置:
<bean id="userDao" class="com.easyjf.bbs.dbo.springjdbc.UserDaoSpringJdbc">
<property name="dataSource"><ref bean="dataSource"/></property>
</bean>
使用简短属性方式,则改成如下:
<bean id="userDao" class="com.easyjf.bbs.dbo.springjdbc.UserDaoSpringJdbc" p:dataSource-ref="dataSource" />
Spring2.0比以前的版本配置更加灵活、简洁,如果手工书写配置,则比较实用。当然,老的配置方式有很多开发工具如MyEclipse等都能识别,不需要我们动手一点一点的录入配置文件,大多数工具对新的配置方式还不能识别,因此,请根据实际情况酌情使用。
来源:http://hi.baidu.com/lin_zy/blog/item/500e28d1aff7e7d7562c8449.html
相关文章推荐
- spring2.0配置中的新标签应用
- spring2.0配置中的新标签应用
- spring2.0配置中的新标签应用
- spring2.0配置中的新标签应用
- Spring配置文件中jdbc:initialize-database标签应用以及PropertyPlaceholderConfigurer配置的应用
- Spring2.0配置文件加载util标签的Schema
- Struts2+Hibernate3.2+Spring 2.0整合应用配置
- spring boot 集成quartz 2.0 实现前端动态配置(获取spring上下文)的两种方式,启动数据库中已开启定时任务
- Spring4.3.x 浅析xml配置的解析过程(5)——解析自定义命名空间的标签
- Spring4.3.x 浅析xml配置的解析过程(8)——解析context命名空间之component-scan标签
- Eclipse下配置spring应用
- Java后台框架篇--Spring应用上下文配置:Xml方式
- (转)Spring 2.0的新特性和应用实践
- 对比Spring1.0 与 2.0 的事务配置方式
- Spring中应用占位符需引入的配置
- Spring Boot 2.0 的配置详解(图文教程)
- 数据库阿里连接池 druid配置详解 标签: druidspringjavaxml配置阿里池 2016-06-16 00:34 57532人阅读 评论(11) 收藏 举报 版权声明:本文为博主原创文
- spring中用p标签配置bean的属性
- Spring3中的mvc:interceptors标签配置拦截器
- Spring Boot应用的后台运行配置