当前位置: 首页 > 知识库问答 >
问题:

在Spring Boot应用程序中禁用Spring JMS自动配置

杜鸿彩
2023-03-14

在我的spring boot应用程序中,我配置了MQQueueConnectionFactory的两个不同实例(不同id),因为这是应用程序的需要。为此,我添加了ibm客户机JAR。

我还在代码中添加了spring jms依赖项,因为我需要JmsTemplate等类。添加此依赖项后,JmsAutoConfiguration在类路径中找到JmsTemplate并尝试配置bean。在这个过程中,它尝试注入ConnectionFactory类型的bean,这就是代码失败的地方,我开始得到错误。下面是JmsAutoConfiguration的代码

@Configuration
@ConditionalOnClass(JmsTemplate.class)
@ConditionalOnBean(ConnectionFactory.class)
@EnableConfigurationProperties(JmsProperties.class)
@Import(JmsAnnotationDrivenConfiguration.class)
public class JmsAutoConfiguration {

    @Autowired
    private JmsProperties properties;

    @Autowired
    private ConnectionFactory connectionFactory;

    @Autowired(required = false)
    private DestinationResolver destinationResolver;

我有没有可能关闭Spring启动的JmsAuto配置功能?如果没有,那么替代解决方案是什么?

共有3个答案

拓拔富
2023-03-14

仅供参考,使用此选项禁用ActiveMQ

@SpringBootApplication(exclude = ActiveMQAutoConfiguration.class)
米元凯
2023-03-14

如果您想通过属性(在本例中是application.yml)控制它,那么您可以这样做。

spring:
  autoconfigure:
    exclude: org.springframework.boot.autoconfigure.jms.JmsAutoConfiguration
马寒
2023-03-14

您可以将要禁用的自动配置添加到SpringBootApplication注释中:

@SpringBootApplication(exclude = JmsAutoConfiguration.class)
 类似资料: