spring – 完成jms:侦听器迁移到JavaConfig
作者:互联网
就像标题所说..
我已经阅读了这个有价值的How to add multiple JMS MessageListners in a single MessageListenerContainer for Spring Java Config链接
这篇文章的作者正在努力
messageListenerContainer.setMessageListener(new TaskFinished());
顺便说一句:我用
@Autowired
private ConsumerListener consumerListener;
defaultMessageListenerContainer.setMessageListener(consumerListener);
我没有使用新的运算符.
好的,setMessageListener方法的限制是:该类必须实现MessageListener接口,我已测试并正常工作
我的问题是,根据23.6 JMS Namespace Support
如何表示以下内容:
<jms:listener destination="queue.orders" ref="orderService" method="placeOrder"/>
<jms:listener destination="queue.confirmations" ref="confirmationLogger" method="log"/>
通过JavaConfig?
它们是简单的pojo(参见ref和方法属性)
我想使用一个简单的pojo(@Component或@Service)选项而不是MessageListener对象
在DefaultMessageListenerContainer API中,无法解决此要求或情况.
提前致谢..
解决方法:
<jms:listener destination="queue.orders" ref="orderService" method="placeOrder"/>
这个xml使用一个MessageListenerAdapter
,你可以交给一个委托(ref和一个执行方法(默认’handleMessage`).
@Configuration
public MyJmsConfiguration {
@Bean
public DefaultMessageListenerContainer consumerJmsListenerContainer() {
DefaultMessageListenerContainer dmlc = new DefaultMessageListenerContainer();
...
MessageListenerAdapter listener = new MessageListenerAdapter();
listener.setDelegate(orderService());
listener.setDefaultListenerMethod("placeOrder");
dmlc.setMessageListener(listener);
return dmlc;
}
要从Java配置中使用它,请使用类似上面的代码段.
标签:spring-4,spring,spring-3,spring-jms 来源: https://codeday.me/bug/20190825/1714212.html