如何在Spring中使用多个JdbcOperations和多个JdbcTemplates

时间:2016-06-17 04:57:18

标签: spring spring-boot spring-data

我有2个不同的数据路由,我想在同一个文件中使用它,并使用JdbcOperations实现查询每个数据路径。这可能吗?

@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在构造函数中初始化。但是没有办法指定jdbcOperations使用的哪个 jdbcTemplate。

1 个答案:

答案 0 :(得分:0)

限定符实际应该放在参数级别:

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

使用名为jdbcTemplate2

的bean