?
本文檔使用 php中文網(wǎng)手冊 發(fā)布
從Spring2.5版本開始,Spring也提供了基于JCA MessageListener
容器的支持。
JmsMessageEndpointManager
將根據(jù)供應者 ResourceAdapter
的類名自動地決定 ActivationSpec
類名。因此,通常它只提供如下例所示的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
,
目標 ResourceAdapter
可以像下例描述的那樣本地配置。
在一些環(huán)境里(如WebLogic)也可以通過JNDI查找來完成。
<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>
請參考 JmsMessageEndpointManager
、JmsActivationSpecConfig
和 ResourceAdapterFactoryBean
部分的JavaDoc,以獲得更詳細的信息。
Spring也提供了并不與JMS綁定的通用JCA消息端點管理器:
org.springframework.jca.endpoint.GenericMessageEndpointManager
。
它允許使用任何類型的消息監(jiān)聽器(例如CCI MessageListener)和任何提供者特定的ActivationSpec對象。從所涉及的JCA提供者的文檔可以找到這個連接器的實際能力,從 GenericMessageEndpointManager
的JavaDoc中可以找到Spring特有的配置細節(jié)。
基于JCA的消息端點管理器與EJB 2.1的Message-Driven Beans很相似,它使用了相同的資源提供者約定。像EJB 2.1 MDB一樣,任何被JCA提供者支持的消息監(jiān)聽器接口都可以在Spring Context中使用。盡管如此,Spring仍為JMS提供了顯式的“方便的”支持,很顯然是因為JMS是JCA端點管理約定中最通用的端點API。