2016-09-11 10 views
0

JndiConnectionFactoryAutoConfigurationが私のために作成しない場合に備えて、私は代替のConnectionFactoryを作成しようとしています。ここで春のブートの自動設定AutoConfigureAfter

は私がspring.jms.jndi名を持っていることに気付くた春のブートが開始され、いくつかの自動設定が起こっている、私たちはJndiConnectionFactoryAutoConfigurationに取得するクラスは、私が期待してい何

@Configuration 
@AutoConfigureAfter(JndiConnectionFactoryAutoConfiguration.class) 
@ConditionalOnMissingBean(ConnectionFactory.class) 
@ConditionalOnClass(ConnectionFactory.class) 
public class JmsFallbackAutoConfiguration { 

    @Bean 
    @ConditionalOnMissingBean 
    ConnectionFactory fallbackConfiguration() { 
     ActiveMQConnectionFactory activeMQConnectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616"); 
     System.out.println("Created: " + activeMQConnectionFactory); 
     return activeMQConnectionFactory; 
    } 

} 

次のようになります。 ConnectionFactory Beanを設定して作成します。

そして、ある時点で、すでにJndiConnectionFactoryAutoConfigurationによって設定されたConnectionFactoryが既に存在していることに気づくべきときに、JmsFallbackAutoConfigurationに到達することを期待しています。

JmsFallbackAutoConfigurationは常に実行され、私は何が欠けているのかわかりません。ここhttps://github.com/apixandru/case-study/tree/master/spring-boot-weblogic-jms/spring-boot-weblogic-jms-war

+0

メソッドレベルの注釈にもConnectionFactory.classを追加してみてください – janek

+0

@janek、同じ結果 – Alexandru

答えて

1

JmsFallbackAutoConfiguration

サンプル・プロジェクトは、@SpringBootApplicationで注釈を付けていますあなたのメインアプリケーションクラスと同じパッケージにあります。つまり、コンポーネントスキャンによって検出されます。メインアプリケーションクラスまたはサブパッケージのいずれかと同じパッケージにないように、別のパッケージに移動する必要があります。

+0

あなたは正しいですが、メインアプリケーションパッケージの外に移動すると問題が解決します。ありがとうございました – Alexandru

関連する問題