依赖包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${jdbc-mysql-version}</version>
<scope>runtime</scope>
</dependency>
properties文件配置
spring.datasource.primary.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.primary.jdbc-url=jdbc:mysql://127.0.0.1:3316/open_tag?useUnicode=true&characterEncoding=utf8
spring.datasource.primary.username=dev
spring.datasource.primary.password=P0G5h#C!BhNM$Ki1
second 数据源配置
spring.datasource.secondary.jdbc-url=jdbc:mysql://127.0.0.1:3316/open_tag?useUnicode=true&characterEncoding=utf8
spring.datasource.secondary.username=bigdata
spring.datasource.secondary.password=zS^sNH4m%LjWQOMN
spring.datasource.secondary.driverClassName=com.mysql.cj.jdbc.Driver
数据源配置
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.jdbc.core.JdbcTemplate;
import javax.sql.DataSource;
@Configuration
public class DataSourceConfig {
@Bean(name = "PrimaryDataSource")
@Qualifier("PrimaryDataSource")
@Primary
@ConfigurationProperties(prefix="spring.datasource.primary")
public DataSource primaryDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "SecondaryDataSource")
@Qualifier("SecondaryDataSource")
@ConfigurationProperties(prefix="spring.datasource.secondary")
public DataSource secondaryDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name="PrimaryJdbcTemplate")
public JdbcTemplate primaryJdbcTemplate (
@Qualifier("PrimaryDataSource") DataSource dataSource ) {
return new JdbcTemplate(dataSource);
}
@Bean(name="SecondaryJdbcTemplate")
public JdbcTemplate secondaryJdbcTemplate(
@Qualifier("SecondaryDataSource") DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
}
应用层
@Autowired
@Qualifier("PrimaryJdbcTemplate")
JdbcTemplate jdbcTemplate;