2015-10-22 25 views
6

Trong ứng dụng khởi động mùa xuân của tôi, tôi cấu hình hai trường hợp khác nhau của MQQueueConnectionFactory (id khác) vì nó là một nhu cầu của ứng dụng. Cho rằng tôi đã thêm lọ khách hàng ibm.Tắt cấu hình Spring JMS Auto trong Spring Boot Application

Tôi cũng đã thêm phụ thuộc spring-jms vào mã của mình vì tôi muốn các lớp JmsTemplate vv. Sau khi thêm phụ thuộc này, JmsAutoConfiguration tìm JmsTemplate trong classpath và cố gắng cấu hình bean. Trong quá trình này, nó cố gắng để tiêm đậu kiểu ConnectionFactory và đây là nơi mã không thành công và tôi bắt đầu nhận được lỗi. Dưới đây là các mã từ 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; 

Bạn tôi có một cơ sở để tắt tính năng JmsAutoconfiguration của khởi động mùa xuân bởi bất kỳ cơ hội? Nếu không thì giải pháp thay thế cho điều này là gì?

Trả lời

10

Bạn có thể thêm các cấu hình tự động, mà bạn muốn vô hiệu hóa, để chú thích SpringBootApplication:

@SpringBootApplication(exclude = JmsAutoConfiguration.class) 
+1

Hoặc: '@EnableAutoConfiguration (exclude = JmsAutoConfiguration.class)' –

2

nếu muốn kiểm soát nó thông qua các thuộc tính (trong trường hợp này một application.yml) sau đó bạn có thể làm một cái gì đó như thế này.

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

FYI, sử dụng để vô hiệu hóa ActiveMQ

@SpringBootApplication(exclude = ActiveMQAutoConfiguration.class) 
Các vấn đề liên quan