我在context.xml中定义了一个JMS * listener-container *,如下所示:
<jms:listener-container connection-factory="connectionFactory" acknowledge="auto" destination-type="topic" >
<jms:listener id="listener" destination="${jms_topic}" ref="jmsListener" method="onMessage" />
</jms:listener-container>
我有一个集成测试套件,在其中我使用测试特定的 bean 和逻辑来丰富我的 spring 上下文。显然,我不想用这个弄乱我的代码,所以我在一个单独的 Spring context 中声明它们,其中包括前一个。
就像是 :
<!-- Import regular configuration -->
<import resource="classpath*:/META-INF/spring/context.xml"/>
<!-- Test only listener -->
<jms:listener-container connection-factory="connectionFactory" acknowledge="auto" destination-type="topic" >
<jms:listener id="listenerIT" destination="${another_topic}" ref="jmsListenerIT" method="onMessage" />
</jms:listener-container>
如您所见,集成测试上下文声明了一个新的侦听器容器。
问题是,每当我这样做时,前者(常规)都会被忽略。好像监听器的最后一个声明覆盖了之前的声明。
在多个文件中声明多个侦听器的正确方法是什么?
提前致谢。