上一次写了一个springboot多数据源的文章,刚好最近又要适配国产化,我在想能不能直接拿过来改改,没想到还真可以,其他的配置我就不贴了,直接看我上一篇文章,那么话不多说,接下来把改动代码贴上来看效果。
配置文件spring:
#数据库配置
datasource:
type: com.alibaba.druid.pool.DruidDataSource
druid:
# mysql数据源
master:
driverClassName: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/ljw?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC&allowMultiQueries=true
username: root
password: root
# 达梦数据源
slave:
# 达梦数据源开关/默认开启
enabled: true
driverClassName: dm.jdbc.driver.DmDriver
url: jdbc:dm://192.168.10.166:5236/TZB?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true
username: TZB
password: 123456789
数据源配置类(这个代码稍微表动了一下,其他的不变)
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;
import lovely.ljw.top.framework.utils.SpringUtils;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
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 javax.sql.DataSource;
import java.util.HashMap;
import java.util.Map;
@Configuration
public class DruidConfig {
@Bean(name="masterDataSource")
@ConfigurationProperties("spring.datasource.druid.master")
public DataSource masterDataSource(){
DruidDataSource dataSource = DruidDataSourceBuilder.create().build();
return dataSource;
}
//控制@Configuration是否生效.ConditionalOnProperty通过其两个属性name以及havingValue来实现的,其中name用来从application.properties中读取某个属性值。
@Bean(name="slaveDataSource")
@ConfigurationProperties("spring.datasource.druid.slave")
@ConditionalOnProperty(prefix = "spring.datasource.druid.slave", name = "enabled", havingValue = "true")
public DataSource slaveDataSource(){
DruidDataSource dataSource = DruidDataSourceBuilder.create().build();
return dataSource;
}
@Bean(name = "dynamicDataSource")
@Primary
public DataSource dynamicDataSource (@Qualifier(value="masterDataSource") DataSource masterDataSource){
//设置默认数据源
DynamicDataSource dd = new DynamicDataSource();
dd.setDefaultTargetDataSource(masterDataSource);
//多数据源配置
Map
分别看一下我mysql和达梦数据库表的数据
mysql数据
达梦数据
看一下使用mysql数据库效果
使用达梦数据库效果
OK,打完收工



