2015-10-22 21 views
6

Nella mia applicazione di avvio di primavera configuro due diverse istanze di MQQueueConnectionFactory (id differente) in quanto è una necessità dell'applicazione. Per questo ho aggiunto i jar ibm client.Disabilitazione della configurazione automatica di Spring JMS in Spring Boot Application

Ho anche aggiunto la dipendenza da molla-jms nel mio codice come volevo classi JmsTemplate ecc. Dopo aver aggiunto questa dipendenza, JmsAutoConfiguration trova JmsTemplate in classpath e prova a configurare i bean. In questo processo, tenta di iniettare bean di tipo ConnectionFactory e questo è il punto in cui il codice fallisce e comincio a ricevere l'errore. Di seguito è riportato il codice 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; 

ho un impianto di spegnere caratteristica JmsAutoconfiguration di avvio di primavera per caso? In caso contrario, qual è la soluzione alternativa per questo?

risposta

10

È possibile aggiungere le configurazioni di auto, che si desidera disattivare, per l'annotazione SpringBootApplication:

@SpringBootApplication(exclude = JmsAutoConfiguration.class) 
+1

Oppure: '@EnableAutoConfiguration (escludere = JmsAutoConfiguration.class)' –

2

se vogliono controllare tramite le proprietà (in questo caso un application.yml) allora si può fare qualcosa come questo.

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

FYI, utilizzare questa opzione per disattivare ActiveMQ

@SpringBootApplication(exclude = ActiveMQAutoConfiguration.class) 
Problemi correlati