示例:
pom文件
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
application.properties
#测试地址
spring.datasource.ad.url=jdbc:mysql://127.0.0.1:3316/test1?useUnicode=true&characterEncoding=utf8&autoReconnect=true
spring.datasource.ad.username=root
spring.datasource.ad.password=132456
spring.datasource.maopao.url=jdbc:mysql://127.0.0.1:3316/test2?useUnicode=true&characterEncoding=utf8&autoReconnect=true
spring.datasource.maopao.username=root
spring.datasource.maopao.password=132456
配置类
@Primary代表默认的数据源
package com.bootdo.config;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
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;
import javax.sql.DataSource;
/**
* @program: itv-ad-app
* @description:不同数据库数据源配置类
* @author: hw
* @create: 2019-04-23 17:39
**/
@Configuration
public class DataSourceConfig {
@Bean(name = "AdDataSource")
@Qualifier("AdDataSource")
@Primary
@ConfigurationProperties(prefix="spring.datasource.ad")
public DataSource primaryDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "MaopaoDataSource")
@Qualifier("MaopaoDataSource")
@ConfigurationProperties(prefix="spring.datasource.maopao")
public DataSource secondaryDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name="AdJdbcTemplate")
public JdbcTemplate primaryJdbcTemplate (
@Qualifier("AdDataSource") DataSource dataSource ) {
return new JdbcTemplate(dataSource);
}
@Bean(name="MaopaoJdbcTemplate")
public JdbcTemplate secondaryJdbcTemplate(
@Qualifier("MaopaoDataSource") DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
}
使用示例:
想使用哪个数据库 就在@Qualifier 里面更换不同的bean名称即可
@Autowired
@Qualifier("AdJdbcTemplate")
JdbcTemplate jdbcTemplate;