附录
XML模式
本附录的这一部分列出了与集成技术相关的XML模式。
jee 模式
jee元素处理与Jakarta EE(企业版)配置相关的问题,例如查找JNDI对象和定义EJB引用。
要使用 jee 架构中的元素,你需要在 Spring XML 配置文件的顶部添加以下前置内容。以下代码片段中的文本引用了正确的架构,这样 jee 命名空间中的元素就能被你使用了:
<?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
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/jee
https://www.springframework.org/schema/jee/spring-jee.xsd">
<!-- bean definitions here -->
</beans>
<jee:jndi-lookup/> (简单)
以下示例展示了如何在不使用jee模式的情况下,通过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>
以下示例展示了如何使用JNDI来查找具有jee模式的数据源:
<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/>(带单一JNDI环境设置)
以下示例展示了如何在不使用jee的情况下,使用JNDI来查找环境变量:
<bean id="simple" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="jdbc/MyDataSource"/>
<property name="jndiEnvironment">
<props>
<prop key="ping">pong</prop>
</props>
</property>
</bean>
以下示例展示了如何使用JNDI来查找名为jee的环境变量:
<jee:jndi-lookup id="simple" jndi-name="jdbc/MyDataSource">
<jee:environment>ping=pong</jee:environment>
</jee:jndi-lookup>
<jee:jndi-lookup/>(带有多个JNDI环境设置)
以下示例展示了如何在不使用jee的情况下,使用JNDI来查找多个环境变量:
<bean id="simple" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="jdbc/MyDataSource"/>
<property name="jndiEnvironment">
<props>
<prop key="sing">song</prop>
<prop key="ping">pong</prop>
</props>
</property>
</bean>
以下示例展示了如何使用JNDI通过jee来查找多个环境变量:
<jee:jndi-lookup id="simple" jndi-name="jdbc/MyDataSource">
<!-- newline-separated, key-value pairs for the environment (standard Properties format) -->
<jee:environment>
sing=song
ping=pong
</jee:environment>
</jee:jndi-lookup>
<jee:jndi-lookup/>(复杂类型)
以下示例展示了如何在不使用jee的情况下,通过JNDI来查找数据源以及多种不同的属性:
<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="com.myapp.DefaultThing"/>
<property name="proxyInterface" value="com.myapp.Thing"/>
</bean>
以下示例展示了如何使用JNDI来查找数据源以及与“jee”相关的多个不同属性:
<jee:jndi-lookup id="simple"
jndi-name="jdbc/MyDataSource"
cache="true"
resource-ref="true"
lookup-on-startup="false"
expected-type="com.myapp.DefaultThing"
proxy-interface="com.myapp.Thing"/>
<jee:local-slsb/>(简单)
<jee:local-slsb/> 元素用于配置对本地 EJB 无状态会话bean(Stateless Session Bean)的引用。
以下示例展示了如何在不使用jee的情况下配置对本地EJB无状态会话Bean的引用:
<bean id="simple"
class="org.springframework.ejb.access.LocalStatelessSessionProxyFactoryBean">
<property name="jndiName" value="ejb/RentalServiceBean"/>
<property name="businessInterface" value="com.foo.service.RentalService"/>
</bean>
以下示例展示了如何使用jee配置对本地EJB无状态会话Bean的引用:
<jee:local-slsb id="simpleSlsb" jndi-name="ejb/RentalServiceBean"
business-interface="com.foo.service.RentalService"/>
<jee:local-slsb/>(复杂类型)
<jee:local-slsb/> 元素用于配置对本地 EJB 无状态会话 Bean(Stateless Session Bean)的引用。
以下示例展示了如何在不使用jee的情况下配置对本地EJB无状态会话Bean的引用以及多个属性:
<bean id="complexLocalEjb"
class="org.springframework.ejb.access.LocalStatelessSessionProxyFactoryBean">
<property name="jndiName" value="ejb/RentalServiceBean"/>
<property name="businessInterface" value="com.example.service.RentalService"/>
<property name="cacheHome" value="true"/>
<property name="lookupHomeOnStartup" value="true"/>
<property name="resourceRef" value="true"/>
</bean>
以下示例展示了如何使用jee配置对本地EJB无状态会话Bean的引用以及若干属性:
<jee:local-slsb id="complexLocalEjb"
jndi-name="ejb/RentalServiceBean"
business-interface="com.foo.service.RentalService"
cache-home="true"
lookup-home-on-startup="true"
resource-ref="true">
<jee:remote-slsb/>
<jee:remote-slsb/> 元素配置了对一个 remote EJB 无状态会话bean(Stateless Session Bean)的引用。
以下示例展示了如何在不使用jee的情况下配置对远程EJB无状态会话Bean的引用:
<bean id="complexRemoteEjb"
class="org.springframework.ejb.access.SimpleRemoteStatelessSessionProxyFactoryBean">
<property name="jndiName" value="ejb/MyRemoteBean"/>
<property name="businessInterface" value="com.foo.service.RentalService"/>
<property name="cacheHome" value="true"/>
<property name="lookupHomeOnStartup" value="true"/>
<property name="resourceRef" value="true"/>
<property name="homeInterface" value="com.foo.service.RentalService"/>
<property name="refreshHomeOnConnectFailure" value="true"/>
</bean>
以下示例展示了如何使用jee配置对远程EJB无状态会话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">
jms 模式
jms 元素用于配置与 JMS 相关的 bean,例如 Spring 的 消息监听容器。这些元素的详细信息可以在 JMS 章节 中的 JMS 命名空间支持 部分找到。有关此支持以及 jms 元素本身的完整详情,请参阅该章节。
为了保证完整性,要在使用jms模式中的元素时,需要在Spring XML配置文件的顶部添加以下前置内容。以下代码片段中引用的模式是正确的,这样jms命名空间中的元素才能被使用:
<?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:jms="http://www.springframework.org/schema/jms"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/jms
https://www.springframework.org/schema/jms/spring-jms.xsd">
<!-- bean definitions here -->
</beans>
使用 <context:mbean-export/>
此元素的详细信息请参见配置基于注解的MBean导出。
cache 架构
你可以使用cache元素来支持Spring的@CacheEvict、@CachePut和@Caching注解。cache模式还支持基于声明式的XML缓存。详情请参见启用缓存注解和基于声明式的XML缓存。
要使用 cache 模式中的元素,你需要在 Spring XML 配置文件的顶部添加以下前置内容。以下代码片段中引用了正确的模式,这样 cache 命名空间中的元素就能被你使用了:
<?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:cache="http://www.springframework.org/schema/cache"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/cache
https://www.springframework.org/schema/cache/spring-cache.xsd">
<!-- bean definitions here -->
</beans>