Свойство boot используется для настройки фабрики контейнеров по умолчанию, используемой методами @JmsListener
, а также для настройки JmsTemplate
.
Просто переопределите фабрику контейнеров Boot по умолчанию ...
@Bean
public DefaultJmsListenerContainerFactory jmsListenerContainerFactory(
DefaultJmsListenerContainerFactoryConfigurer configurer,
ConnectionFactory connectionFactory) {
DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
configurer.configure(factory, connectionFactory);
return factory;
}
и затем добавьте второй
@Bean
public DefaultJmsListenerContainerFactory jmsTopicListenerContainerFactory(
DefaultJmsListenerContainerFactoryConfigurer configurer,
ConnectionFactory connectionFactory) {
DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
configurer.configure(factory, connectionFactory);
factory.setPubSubDomain(true); << override the boot property
return factory;
}
Затем обратитесь к альтернативной фабрике в @JmsListener
для темы.
В качестве альтернативы, если у вас нет слушателейдля обоих типов установите для свойства true
, но переопределите конфигурацию Boot JmsTemplate
.