我的 spring-config.xml 中有以下 xml 代码
<jms:listener-container acknowledge="auto"
connection-factory="cachedConnectionFactory" container-type="default"
error-handler="consumerErrorHandler" concurrency="20-25">
<jms:listener destination="#{TaskFinished.destination}"
method="onMessage" ref="taskFinished" />
</jms:listener-container>
现在,我正在将我的 spring xml 配置文件转换为 Java 配置。
我翻译成这样
@Bean(name = "consumerJmsListenerContainer")
public DefaultMessageListenerContainer consumerJmsListenerContainer() {
DefaultMessageListenerContainer messageListenerContainer = new DefaultMessageListenerContainer();
messageListenerContainer
.setConnectionFactory(cachingConnectionFactory());
messageListenerContainer.setConcurrency("20-25");
messageListenerContainer.setErrorHandler(new ConsumerErrorHandler());
messageListenerContainer
.setSessionAcknowledgeMode(Session.AUTO_ACKNOWLEDGE);
messageListenerContainer.setMessageListener(new TaskFinished());
return messageListenerContainer;
}
我需要知道的是,如果Message Container中有多个MessageListner,比如
<jms:listener-container acknowledge="auto"
connection-factory="cachedConnectionFactory" container-type="default"
error-handler="consumerErrorHandler" concurrency="20-25">
<jms:listener destination="#{questionGeneration.destination}"
method="onMessage" ref="questionGeneration" />
<jms:listener destination="#{friendShipLogic.destination}"
method="onMessage" ref="friendShipLogic" />
<jms:listener destination="#{postAvailabilityChecker.destination}"
method="onMessage" ref="postAvailabilityChecker" />
<jms:listener destination="#{playOn.destination}" method="onMessage"
ref="playOn" />
</jms:listener-container>
我应该如何将此 xml 代码转换为 Java 配置?
最佳答案
命名空间只是为了方便 - 每个 <jms:listener/>
元素获得自己的 DMLC
;外部(容器)元素只是提供公共(public)属性的载体。
关于java - 如何在 Spring Java Config 的单个 MessageListenerContainer 中添加多个 JMS MessageListners,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21881657/