编写数据库配置:
#mysql配置
spring:
datasource:
primary:
jdbc-url: jdbc:mysql://localhost:3306/shujuku?useSSL=false&useUnicode=true&characterEncoding=UTF8&serverTimezone=Asia/Shanghai
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: root
trace: false
maximumConnectionCount: 20
minimumConnectionCount: 10
prototypeCount: 2
simultaneousBuildThrottle: 50
maximumActiveTime: 6000000
secondary:
jdbc-url: jdbc:mysql://localhost:3306/shujuku?useSSL=false&useUnicode=true&characterEncoding=UTF8&serverTimezone=Asia/Shanghai
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
trace: root
maximumConnectionCount: 20
minimumConnectionCount: 10
prototypeCount: 2
simultaneousBuildThrottle: 50
maximumActiveTime: 6000000
编写DataSource配置类:
@Configuration
public class DataSourceConfig {
@Bean(name = "primaryDataSource")
@Primary // 表示这个数据源是默认数据源, 这个注解必须要加,因为不加的话spring将分不清楚那个为主数据源(默认数据源)
@ConfigurationProperties(prefix="spring.datasource.primary")
public DataSource primaryDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "secondaryDataSource")
@ConfigurationProperties(prefix="spring.datasource.secondary")
public DataSource secondaryDataSource() {
return DataSourceBuilder.create().build();
}
@Primary
@Bean(name = "primaryJdbcTemplate")
public NamedParameterJdbcTemplate primaryJdbcTemplate(
@Qualifier("primaryDataSource") DataSource dataSource) {
return new NamedParameterJdbcTemplate(dataSource);
}
@Bean(name = "secondaryJdbcTemplate")
public NamedParameterJdbcTemplate secondaryJdbcTemplate(
@Qualifier("secondaryDataSource") DataSource dataSource) {
return new NamedParameterJdbcTemplate(dataSource);
}
}
dao层使用:
@Autowired (name="primaryJdbcTemplate") protected NamedParameterJdbcOperations primaryJdbc;
@Resource(name="secondaryJdbcTemplate") protected NamedParameterJdbcOperations secondaryJdbc;
完毕!