就像标题所说..
我已阅读此有价值的How to add multiple JMS MessageListners in a single MessageListenerContainer for Spring Java Config链接
该帖子的作者正在完成
messageListenerContainer.setMessageListener(new TaskFinished());
BTW:我用
@Autowired
private ConsumerListener consumerListener;
defaultMessageListenerContainer.setMessageListener(consumerListener);
我没有使用新运算符。
好的, setMessageListener 方法的限制是:该类必须实现 MessageListener 接口,我已经测试并运行
,我的问题是如何表示以下内容:
<jms:listener destination="queue.orders" ref="orderService" method="placeOrder"/>
<jms:listener destination="queue.confirmations" ref="confirmationLogger" method="log"/>
通过JavaConfig?
它们是简单的pojo(请参阅ref
和method
属性)
我想使用一个简单的pojo(@Component或@Service)选项而不是 MessageListener 对象
在DefaultMessageListenerContainer API中,无法解决此要求或情况。
提前致谢..
答案 0 :(得分:6)
<jms:listener destination="queue.orders" ref="orderService" method="placeOrder"/>
这个xml使用MessageListenerAdapter
你可以交给一个委托(ref
和一个方法来执行(默认&#39; 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配置中使用它,请使用类似上面的代码段。