多数据源配置
创建一个Spring配置类,定义两个DataSource用来读取application.properties
中的不同配置。如下例子中,主数据源配置为spring.datasource.primary
开头的配置,第二数据源配置为spring.datasource.secondary
开头的配置。
public class DataSourceConfig { "primaryDataSource") (name = "primaryDataSource") ( "spring.datasource.primary") (prefix= public DataSource primaryDataSource() { return DataSourceBuilder.create().build(); } "secondaryDataSource") (name = "secondaryDataSource") ( "spring.datasource.secondary") (prefix= public DataSource secondaryDataSource() { return DataSourceBuilder.create().build(); } } |
对应的application.properties
配置如下:
spring.datasource.primary.url=jdbc:mysql://localhost:3306/test1 spring.datasource.primary.username=root spring.datasource.primary.password=root spring.datasource.primary.driver-class-name=com.mysql.jdbc.Driver spring.datasource.secondary.url=jdbc:mysql://localhost:3306/test2 spring.datasource.secondary.username=root spring.datasource.secondary.password=root spring.datasource.secondary.driver-class-name=com.mysql.jdbc.Driver |
JdbcTemplate支持
对JdbcTemplate的支持比较简单,只需要为其注入对应的datasource即可,如下例子,在创建JdbcTemplate的时候分别注入名为primaryDataSource
和secondaryDataSource
的数据源来区分不同的JdbcTemplate。
"primaryJdbcTemplate") (name = public JdbcTemplate primaryJdbcTemplate( @Qualifier("primaryDataSource") DataSource dataSource) { return new JdbcTemplate(dataSource); } "secondaryJdbcTemplate") (name = public JdbcTemplate secondaryJdbcTemplate( @Qualifier("secondaryDataSource") DataSource dataSource) { return new JdbcTemplate(dataSource); } |
接下来通过测试用例来演示如何使用这两个针对不同数据源的JdbcTemplate。