首页 > 代码库 > Spring : 基于XML Schema 的配置 (二)

Spring : 基于XML Schema 的配置 (二)

[本教程翻译自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>pechorin@hero.org</value>
            <value>raskolnikov@slums.org</value>
            <value>stavrogin@gov.org</value>
            <value>porfiry@gov.org</value>
        </list>
    </property>
</bean>

现在你可以:

<!-- creates a java.util.List instance with the supplied values -->
<util:list id="emails">
    <value>pechorin@hero.org</value>
    <value>raskolnikov@slums.org</value>
    <value>stavrogin@gov.org</value>
    <value>porfiry@gov.org</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=http://www.mamicode.com/"..." />>

  • 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=http://www.mamicode.com/"jdbc/MyDataSource"/>>
现在,你可以:
<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"/>



Spring : 基于XML Schema 的配置 (二)