2016-06-21 11 views
0

複数のデータソースでcontext.xmlが設定されている依存関係jarを持つSpring起動アプリケーションを作成しようとしています。複数のデータソースを持つ依存関係を持つSpring起動アプリケーション

私の春のブートアプリケーションで@ImportResource( "context.xml")を@Configurationクラスに追加したところ、 "タイプ[javax.sql.DataSource]の修飾Beanが定義されていません:予想される単一の一致するBeanが見つかりましたが、XXXDataSource、YYYDataSource、ZZZDataSource、aaaaDataSourceの4つが見つかりました。

私はSpring Bootの複数のデータソースに関するドキュメントを読みましたが、この問題を解決することはできません。私がクラスをどのように設定できるかはわかりませんが、データソースの設定方法を変更するために依存関係jarを変更することはできません。

助けてください!

答えて

0

データソースBeanの「プライマリ」属性を使用して、自動配線でデフォルトで選択することができます。

<bean primary="true|false"/> 

Java構成を使用している場合は、代わりに@Primaryアノテーションを使用してください。

http://docs.spring.io/spring-framework/docs/4.0.4.RELEASE/javadoc-api/org/springframework/context/annotation/Primary.html

@Component 
public class FooService { 
    private FooRepository fooRepository; 

    @Autowired 
    public FooService(FooRepository fooRepository) { 
     this.fooRepository = fooRepository; 
    } 
} 

@Component 
public class JdbcFooRepository { 
    public JdbcFooService(DataSource dataSource) { 
     // ... 
    } 
} 

@Primary 
@Component 
public class HibernateFooRepository { 
    public HibernateFooService(SessionFactory sessionFactory) { 
     // ... 
    } 
} 

これはまだ問題が解決しない場合は、豆に名前を付け、あなたのJavaクラスに@Qualifierアノテーションを使用するか、あなたの春のXMLでの「参照」属性を使用することができます構成。

https://spring.io/blog/2014/11/04/a-quality-qualifier

@Autowired 
@Qualifier("ios") // the use is unique to Spring. It's darned convenient, too! 
private MarketPlace marketPlace ; 

あなたはjarファイル内のデータソースのいずれかを必要とし、むしろjarファイルからXMLをインポートするよりも、設定を変更できない場合は、独自のローカルの春のコンテキストに必要な設定をコピー構成。

+0

依存関係のjarのcontext.xmlのデータソースBeanの1つにを追加することがトリックでした!どうもありがとう!!!!!!! – Nitin

関連する問題