若依前后端分离版配置多数据源

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,照着自带的从库写法

    @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 同一方法中如何使用多数据源

@DataSource(DataSourceType.ACTIVITY)
  • 11
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值