2016-06-17 8 views
0

同じファイルで2つの異なるデータソースを使用し、それぞれにJdbcOperations実装を使用してクエリを実行します。これは可能ですか?複数のJdbcOperationsと複数のJdbcTemplatesをSpringで使用する方法

@Repository 
public class TestRepository { 

    private JdbcOperations jdbcOperations; 

    @Inject 
    @Qualifier("dataSource1") 
    private DataSource dataSource1; 

    @Inject 
    @Qualifier("dataSource2") 
    private DataSource dataSource2; 


    @Bean 
    @Qualifier("jdbcTemplate1") 
    public JdbcTemplate jdbcTemplate1(@Qualifier("dataSource1") DataSource dataSource) { 
    return new JdbcTemplate(dataSource); 
    } 
    @Bean 
    @Qualifier("jdbcTemplate2") 
    public JdbcTemplate jdbcTemplate1(@Qualifier("dataSource2") DataSource dataSource) { 
    return new JdbcTemplate(dataSource); 
    } 

    @Inject 
    public TestRepository(JdbcOperations jdbcOperations) { 
    this.jdbcOperations = jdbcOperations; //HOW DO I SPECIFY WHICH JDBCTEMPLATE SHOULD BE USED FOR INITIALIZING THIS JDBCOPERATIONS 
    } 
} 

上記は私のコードですが、JdbcOperationsはコンストラクタで初期化されることに注意してください。しかし、を指定する方法はありません。 jdbcTemplateでjdbcOperationsを使用する必要があります。

答えて

0

修飾子は、実際には、パラメータレベルで配置する必要があります:

public TestRepository(@Qualifier("jdbcTemplate2")JdbcOperations jdbcOperations) { 
    this.jdbcOperations = jdbcOperations; 
} 

jdbcTemplate2

+0

という名前のBeanが、私はこれを試してみましたが、このエラーを取得して使用します:要求Beanが作成中です:解決不可能な円形があります参照? – nanospeck

+0

あなたの 'リポジトリ'はconfiguratonクラスと実際のクラスの両方ですか?あなたは本当に2つのクラスでそれを分離する必要があります。 –

関連する問題