Disabling Spring JMS Auto configuration in Spring Boot Application

五迷三道 提交于 2020-01-10 21:47:08

问题


In my spring boot application i configure two different instances of MQQueueConnectionFactory (different id) as it is a need of the application. For that i have added ibm client jars.

I have also added spring-jms dependency in my code as i wanted JmsTemplate etc classes. After adding this dependency, JmsAutoConfiguration finds JmsTemplate in classpath and tries to configure beans. In this process, it tries to inject bean of type ConnectionFactory and this is where the code fails and i start getting the error. Below is the code from 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;

Do i have a facility to switch off JmsAutoconfiguration feature of spring boot by any chance? If not then what is the alternative solution for this?


回答1:


You can add the auto configurations, which you want to disable, to the SpringBootApplication annotation:

@SpringBootApplication(exclude = JmsAutoConfiguration.class)



回答2:


if want to control it via the properties (in this case a application.yml) then you can do something like this.

spring:
  autoconfigure:
    exclude: org.springframework.boot.autoconfigure.jms.JmsAutoConfiguration



回答3:


FYI, use this to disable ActiveMQ

@SpringBootApplication(exclude = ActiveMQAutoConfiguration.class)


来源:https://stackoverflow.com/questions/33275088/disabling-spring-jms-auto-configuration-in-spring-boot-application

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!