79. Messaging

79.1 禁用事务 JMS 会话

如果您的 JMS 代理不支持事务会话,则必须完全禁用事务支持。如果您创建自己的JmsListenerContainerFactory,则无需执行任何操作,因为默认情况下不会进行 Transaction。如果您想使用DefaultJmsListenerContainerFactoryConfigurer重用 Spring Boot 的默认值,则可以按以下方式禁用事务会话:

@Bean
public DefaultJmsListenerContainerFactory jmsListenerContainerFactory(
        ConnectionFactory connectionFactory,
        DefaultJmsListenerContainerFactoryConfigurer configurer) {
    DefaultJmsListenerContainerFactory listenerFactory =
            new DefaultJmsListenerContainerFactory();
    configurer.configure(listenerFactory, connectionFactory);
    listenerFactory.setTransactionManager(null);
    listenerFactory.setSessionTransacted(false);
    return listenerFactory;
}

这将覆盖默认工厂,并且应将其应用于应用程序定义的任何其他工厂(如果有)。