web-dev-qa-db-ja.com

Spring BootアプリケーションでのSpring JMS自動構成の無効化

私のスプリングブートアプリケーションでは、アプリケーションの必要性に応じて、MQQueueConnectionFactory(異なるID)の2つの異なるインスタンスを構成します。そのために、IBMクライアントjarを追加しました。

JmsTemplateなどのクラスが必要だったので、コードにspring-jms依存関係も追加しました。この依存関係を追加した後、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 BootのJmsAutoconfiguration機能をオフにする機能はありますか?そうでない場合、これの代替ソリューションは何ですか?

15
user3534483

無効にする自動構成をSpringBootApplicationアノテーションに追加できます。

@SpringBootApplication(exclude = JmsAutoConfiguration.class)
20
dunni

プロパティ(この場合はapplication.yml)で制御したい場合は、次のようにします。

spring:
  autoconfigure:
    exclude: org.springframework.boot.autoconfigure.jms.JmsAutoConfiguration
10
Sameer Patil

参考までに、これを無効にするにはActiveMQ

@SpringBootApplication(exclude = ActiveMQAutoConfiguration.class)
7
raffian