1、application.yml里面配置数据源
druid:
# 主库数据源
master:
url: jdbc:mysql://localhost:3306/ry?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password: root
# 从库数据源
slave:
# 从数据源开关/默认关闭
enabled: false
url:
username:
password:
# 工作流数据源
activity:
enabled: true
url: jdbc:mysql://localhost:3306/dingding_mid?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password: root
2、在common模块的enums目录下的DataSourceType增加数据枚举类型
package com.qilaike.common.enums;
/**
* 数据源
*
* @author ruoyi
*/
public enum DataSourceType
{
/**
* 主库
*/
MASTER,
/**
* 从库
*/
SLAVE,
/**
* 审批流库
*/
ACTIVITY
}
3、在framework模块下的config目录下修改DruidConfig,照着自带的从库写法文章来源:https://www.toymoban.com/news/detail-803600.html
@Bean
@ConfigurationProperties("spring.datasource.druid.activity")
@ConditionalOnProperty(prefix = "spring.datasource.druid.activity", name = "enabled", havingValue = "true")
public DataSource activityDataSource(DruidProperties druidProperties)
{
DruidDataSource dataSource = DruidDataSourceBuilder.create().build();
return druidProperties.dataSource(dataSource);
}
@Bean(name = "dynamicDataSource")
@Primary
public DynamicDataSource dataSource(DataSource masterDataSource)
{
Map<Object, Object> targetDataSources = new HashMap<>();
targetDataSources.put(DataSourceType.MASTER.name(), masterDataSource);
setDataSource(targetDataSources, DataSourceType.SLAVE.name(), "slaveDataSource");
setDataSource(targetDataSources, DataSourceType.ACTIVITY.name(), "activityDataSource");
return new DynamicDataSource(masterDataSource, targetDataSources);
}
4、然后用@DataSource注解来切换数据源,可以写在类上,也可以写在方法里面,还可以写覆盖mp的方法,来实现某个service指定哪个数据库,操作方法看我的另外一个博客spring boot 同一方法中如何使用多数据源文章来源地址https://www.toymoban.com/news/detail-803600.html
@DataSource(DataSourceType.ACTIVITY)
到了这里,关于若依前后端分离版配置多数据源的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!