[本教程翻译自Spring 官方文档,并有适当增删]
续上一篇:
<util:list/>
以前如果要装配一个集合(List),你要这样写:
<!-- creates a java.util.List instance with values loaded from the supplied sourceList --> <bean id="emails" class="org.springframework.beans.factory.config.ListFactoryBean"> <property name="sourceList"> <list> <value>[email protected]</value> <value>[email protected]</value> <value>[email protected]</value> <value>[email protected]</value> </list> </property> </bean>
现在你可以:
<!-- creates a java.util.List instance with the supplied values --> <util:list id="emails"> <value>[email protected]</value> <value>[email protected]</value> <value>[email protected]</value> <value>[email protected]</value> </util:list>
你还可以去自定义该List 的实现,如 <util:list id="emails" list-class="java.util.LinkedList">
(设置ID是为了使集合复用)
对map,set的用法类似这里不介绍。
需要说明的是,<list>和<set>都能装配java.util.Collection的任何实现或数组。
引用其他bean,
<list> <ref bean="..." /> <list>
list的成员还包括:<value><bean><null/>
对于map,
<map> <entry key="GUITAR" value="..." /> <entry key="CYMBAL" ref-value="..." /> </map>
- jee模式
jee标签是为了处理和JavaEE相关的配置,如查询JNDI对象和定义EJB的引用。
当然,使用之前你得添加命名空间。
<?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:jee="http://www.springframework.org/schema/jee" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd"> <!-- bean definitions here --> </beans>
下面的例子是使用jndi定义的数据源,
之前你要这样写:
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName" value="jdbc/MyDataSource"/> </bean> <bean id="userDao" class="com.foo.JdbcUserDao"> <!-- Spring will do the cast automatically (as usual) --> <property name="dataSource" ref="dataSource"/> </bean>
现在,你可以:
<jee:jndi-lookup id="dataSource" jndi-name="jdbc/MyDataSource"/> <bean id="userDao" class="com.foo.JdbcUserDao"> <!-- Spring will do the cast automatically (as usual) --> <property name="dataSource" ref="dataSource"/> </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"/>
时间: 2024-11-09 10:12:55