知乎专栏 |
目录
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); } }