在《实现生产者P2P&subpub兼容模式》中实现了生产者两种消息类型的兼容模式,在消费者中对于单应用同样有这样的需求,我们需要能够在一个应用内同时消费队列和发布订阅两个类型的消息。
本章概要
1、回顾;
2、编码;
3、验证;
回顾
在springboot下,目前我们切换队列和发布订阅模式均通过spring.jms.pub-sub-domain属性配置。《实现生产者P2P&subpub兼容模式》中我们直接定了两个JmsTemplate,并通过调用setPubSubDomain(isPubSubDomain);分别设置其应用类型。同理在我们定义的DefaultJmsListenerContainerFactory中同样有
factory.setPubSubDomain(jmsProperties.isPubSubDomain());方法对其进行设置,我们仅需定义两个不同的DefaultJmsListenerContainerFactory对应不同的setPubSubDomain设置即可满足本章的实践验证,下面开始编码验证。
编码
1、在JmsListenerContainerConfiguration中注册两个DefaultJmsListenerContainerFactory实例:
@Bean(name = { "jmsListenerContainerFactory4Topic" })
public DefaultJmsListenerContainerFactory jmsListenerContainerFactory4Topic() {
DefaultJmsListenerContainerFactory factory