?
This document uses PHP Chinese website manual Release
從Spring2.5版本開(kāi)始,Spring也提供了基于JCA MessageListener
容器的支持。
JmsMessageEndpointManager
將根據(jù)供應(yīng)者 ResourceAdapter
的類(lèi)名自動(dòng)地決定 ActivationSpec
類(lèi)名。因此,通常它只提供如下例所示的Spring的通用 JmsActivationSpecConfig
。
<bean class="org.springframework.jms.listener.endpoint.JmsMessageEndpointManager"> <property name="resourceAdapter" ref="resourceAdapter"/> <property name="jmsActivationSpecConfig"> <bean class="org.springframework.jms.listener.endpoint.JmsActivationSpecConfig"> <property name="destinationName" value="myQueue"/> </bean> </property> <property name="messageListener" ref="myMessageListener"/> </bean>
使用Spring的 ResourceAdapterFactoryBean
,
目標(biāo) ResourceAdapter
可以像下例描述的那樣本地配置。
在一些環(huán)境里(如WebLogic)也可以通過(guò)JNDI查找來(lái)完成。
<bean id="resourceAdapter" class="org.springframework.jca.support.ResourceAdapterFactoryBean"> <property name="resourceAdapter"> <bean class="org.apache.activemq.ra.ActiveMQResourceAdapter"> <property name="serverUrl" value="tcp://localhost:61616"/> </bean> </property> <property name="workManager"> <bean class="org.springframework.jca.work.SimpleTaskWorkManager"/> </property> </bean>
請(qǐng)參考 JmsMessageEndpointManager
、JmsActivationSpecConfig
和 ResourceAdapterFactoryBean
部分的JavaDoc,以獲得更詳細(xì)的信息。
Spring也提供了并不與JMS綁定的通用JCA消息端點(diǎn)管理器:
org.springframework.jca.endpoint.GenericMessageEndpointManager
。
它允許使用任何類(lèi)型的消息監(jiān)聽(tīng)器(例如CCI MessageListener)和任何提供者特定的ActivationSpec對(duì)象。從所涉及的JCA提供者的文檔可以找到這個(gè)連接器的實(shí)際能力,從 GenericMessageEndpointManager
的JavaDoc中可以找到Spring特有的配置細(xì)節(jié)。
基于JCA的消息端點(diǎn)管理器與EJB 2.1的Message-Driven Beans很相似,它使用了相同的資源提供者約定。像EJB 2.1 MDB一樣,任何被JCA提供者支持的消息監(jiān)聽(tīng)器接口都可以在Spring Context中使用。盡管如此,Spring仍為JMS提供了顯式的“方便的”支持,很顯然是因?yàn)镴MS是JCA端點(diǎn)管理約定中最通用的端點(diǎn)API。