- 修改配置文件
将多个数据源依次添加到spring.datasource节点下
spring:
datasource:
master:
url: jdbc:mysql://localhost:3306/db_asuka?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8
username: root
password: 1qaz2wsx
driver-class-name: com.mysql.cj.jdbc.Driver
slave:
url: jdbc:mysql://localhost:3306/db_asuka_2?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8
username: root
password: 1qaz2wsx
driver-class-name: com.mysql.cj.jdbc.Driver
- 修改DataSourceConfig
所在位置:**com.asuka.common.config.**``**DataSourceConfig**
将多个数据源注册到Bean容器中
@Configuration
public class DataSourceConfig {
@Bean
public DataSource masterDataSource(Environment env) {
HikariDataSource ds = new HikariDataSource();
ds.setJdbcUrl(env.getProperty("spring.datasource.master.url"));
ds.setUsername(env.getProperty("spring.datasource.master.username"));
ds.setPassword(env.getProperty("spring.datasource.master.password"));
ds.setDriverClassName(env.getProperty("spring.datasource.master.driver-class-name"));
return ds;
}
@Bean
public DataSource slaveDataSource(Environment env) {
HikariDataSource ds = new HikariDataSource();
ds.setJdbcUrl(env.getProperty("spring.datasource.slave.url"));
ds.setUsername(env.getProperty("spring.datasource.slave.username"));
ds.setPassword(env.getProperty("spring.datasource.slave.password"));
ds.setDriverClassName(env.getProperty("spring.datasource.slave.driver-class-name"));
return ds;
}
}
**
- 定制SQLManager
如果需要定制每一个SQLManager,需要提供BeetlSqlMutipleSourceCustomize
@Bean
public BeetlSqlMutipleSourceCustomize beetlSqlCustomize() {
return new BeetlSqlMutipleSourceCustomize() {
@Override
public void customize(String dataSource,SQLManager sqlManager) {
//可以在这里添加各种扩展,指定主从等
}
};
}