附录

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定义 -->

</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将自动执行转换(与往常一样) -->
	<property name="dataSource" ref="dataSource"/>
</bean>

以下示例展示了如何使用jee模式来查找数据源:

<jee:jndi-lookup id="dataSource" jndi-name="jdbc/MyDataSource"/>

<bean id="userDao" class="com.foo.JdbcUserDao">
	<!-- Spring将自动执行转换(与往常一样) -->
	<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>

以下示例展示了如何使用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>

以下示例展示了如何使用jee来查找多个环境变量:

<jee:jndi-lookup id="simple" jndi-name="jdbc/MyDataSource">
	<!-- 以换行分隔的环境键值对(标准Properties格式) -->
	<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>

以下示例展示了如何使用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的引用。

以下示例展示了如何在没有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的引用。

以下示例展示了如何在没有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的引用。

以下示例显示如何配置对没有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元素本身的完整详细信息。

为了完整起见,在Spring XML配置文件的顶部使用jms模式中的元素,您需要包含以下前言。以下代码片段中的文本引用了正确的模式,以便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定义 -->

</beans>

使用<context:mbean-export/>

此元素在配置基于注解的MBean导出中有详细介绍。

cache模式

您可以使用cache元素来启用Spring的@CacheEvict@CachePut@Caching注解的支持。它还支持声明式基于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定义 -->

</beans>