Guns框架多数据源配置,不修改配置文件

项目需求,配置多数据源,在网上也是找了很多,但是配置项很多,而且Guns里自带多数据源切面AOP,都没有利用上。打断点看了一下配置,找到了一个解决方案:

  1. 在database_info表中插入新数据源的信息
    在这里插入图片描述
  2. 在需要切换数据源的方法上加上注解 @DataSource(name = “dataSourceBiz”)
@Override
@DataSource(name = "dataSourceBiz")
public List<SysAlarm> getAll() {
System.out.println(DataSourceContextHolder.getDataSourceType());
    return this.baseMapper.selectList(null);
}

name的值写在数据库里的db_name字段值

  1. 结果
    主数据源的查询结果:
    在这里插入图片描述
    第二个数据源的查询结果:
    在这里插入图片描述
    输出的是 DataSourceContextHolder.getDataSourceType(),也就是数据源

Guns框架已经写好了多数据源的切换,所以不用我们自己写配置,关于框架本身的配置如下:

1. DataSourceConfig类

在这里插入图片描述
项目启动首先会进入DataSourceConfig类中的次方法,配置主数据源,就是application-local.yml或dev.yml中配置的数据库,prefix映射的就是yml里的spring.datasource

然后,创建主数据库实例
在这里插入图片描述
数据库一系列操作结束后,会进入以下:
在这里插入图片描述
对应的是 MultiSourceExAop

2. SqlSessionFactoryConfig类

然后进入到此类中,创建主数据库的sqlsessionfactory
在这里插入图片描述
初始化主数据源容器以及其他数据源的sqlsessionfactory容器
在这里插入图片描述
该方法内的 initBaseSqlSessionFactory方法会调取数据库里的全部数据源,除了yml中配置的主数据源,其他数据都在此方法内完成初始化

3. DataSourceContext类

刚刚说的多数据源切换模板里调用的初始化容器相关方法就在这个类里
在这里插入图片描述

4. MultiSourceExAop类

切换数据源的切面,在扫描到 @DataSource注解时触发
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值