| 知乎专栏 |
目录
spring.datasource.master.driverClassName = com.mysql.cj.jdbc.Driver spring.datasource.master.url=jdbc:mysql://192.168.1.240:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC&useSSL=false spring.datasource.master.username = root spring.datasource.master.password = password spring.datasource.slave.driverClassName = com.mysql.cj.jdbc.Driver spring.datasource.slave.url=jdbc:mysql://192.168.1.250:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC&useSSL=false spring.datasource.slave.username = root spring.datasource.slave.password = password spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect
package cn.netkiller.config;
import javax.sql.DataSource;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.jdbc.core.JdbcTemplate;
@Configuration
public class MultiDataSourceConfig {
@Bean
@Primary
@ConfigurationProperties("spring.datasource.master")
public DataSourceProperties masterDataSourceProperties() {
return new DataSourceProperties();
}
@Bean("Master")
@Primary
@ConfigurationProperties("spring.datasource.master")
public DataSource masterDataSource() {
return masterDataSourceProperties().initializeDataSourceBuilder().build();
}
@Bean("masterJdbcTemplate")
@Primary
public JdbcTemplate masterJdbcTemplate(@Qualifier("Master") DataSource Master) {
return new JdbcTemplate(Master);
}
@Bean
@ConfigurationProperties("spring.datasource.slave")
public DataSourceProperties slaveDataSourceProperties() {
return new DataSourceProperties();
}
@Bean(name = "Slave")
@ConfigurationProperties("spring.datasource.slave")
public DataSource slaveDataSource() {
return slaveDataSourceProperties().initializeDataSourceBuilder().build();
}
@Bean("slaveJdbcTemplate")
public JdbcTemplate slaveJdbcTemplate(@Qualifier("Slave") DataSource Master) {
return new JdbcTemplate(Master);
}
}