实现SpringBoot的多数据源配置

本文详细介绍了如何在SpringBoot中实现多数据源配置,包括在YML文件中配置数据源、使用@DataSource注解切换数据源、编写DynamicDataSource类以及DataSourceAspect切面处理数据源切换,最后进行了测试验证。通过这些步骤,实现了读写分离,确保了不同数据源在多线程环境下的正确操作。
摘要由CSDN通过智能技术生成

【场景】

  1. 当业务数据量达到了一定程度,DBA 需要合理配置数据库资源。即配置主库的机器高配置,把核心高频的数据放在主库上;把次要的数据放在从库,低配置。
    –(引自 https://www.cnblogs.com/Alandre/p/6611813.html 泥瓦匠BYSocket 大神博客)
  2. 实现读写分离(详见

https://www.cnblogs.com/surge/p/3582248.html


【实现步骤(以renren-security为例)】

  1. 在yml中配置多数据源
    在这里插入图片描述注意此处的 first 和 second,后续配置数据源的名称要与此处名称一致。
    2.配置多数据源的标志注解@DataSource,其使用方法是在具体进行业务编码的时候,通过@DataSource(name = “first”)来实现数据源的切换,此处的 first 是在 yml 文件中定义的数据库名称。
    在这里插入图片描述
    这里重点介绍下SpringBoot的3个注解:
    Java注解之 @Target、@Retention、@Documented简介
    另外补充2个注解:

@Inherited注解 功能:允许子类继承父类中的注解。
@interface意思是声明一个注解,方法名对应参数名,返回值类型对应参数类型。

3.编写DynamicDataSource类,该类需要继承AbstractRoutingDataSource,在Spring容器加载的时候,就注册(设置)数据源,其中,AbstractRoutingDataSource重写了determineCurrentLookupKey()方法,该方法从ThreadLocal(当前

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值