[发明专利]SpringBoot框架下数据源动态切换方法、装置、设备及存储介质在审
申请号: | 201910482969.X | 申请日: | 2019-06-04 |
公开(公告)号: | CN110209438A | 公开(公告)日: | 2019-09-06 |
发明(设计)人: | 向琪;李伟;袁游 | 申请(专利权)人: | 武汉神算云信息科技有限责任公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445;G06F9/448;H04L29/08 |
代理公司: | 武汉明正专利代理事务所(普通合伙) 42241 | 代理人: | 江沣 |
地址: | 430000 湖北省武汉市江汉区武汉*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 多数据源 配置文件 配置中心 动态切换 业务项目 数据源 配置 集合 读取 存储介质 存放地址 重新生成 客户端 推送 调用 抽取 仓库 创建 继承 | ||
本发明实施例提供了一种SpringBoot框架下数据源动态切换方法及设备。所述方法包括:创建配置中心项目,以Git为配置仓库,在所述配置中心项目中设置Git配置文件存放地址,并设置所述Git配置文件的参数,对多数据源配置文件进行多数据源lookup键值的设置,将设置后的多数据源配置文件推送至所述Git中;以业务项目作为配置中心客户端,在bootstrap配置文件中设置需要读取的配置中心地址及配置中心参数,在所述业务项目中对所述多数据源配置文件进行动态切换,调用所述业务项目的刷新接口,获取所述多数据源配置文件的配置;抽取AbstractRoutingDataSource继承类的实例,根据所述多数据源配置文件的配置,重新生成多数据源集合,并对所述多数据源集合重新赋值。本发明可以实现多数据源之间的切换。
技术领域
本发明实施例涉及数据处理技术领域,尤其涉及一种SpringBoot框架下数据源动态切换方法、装置、设备及存储介质。
背景技术
多租户提供服务的系统是典型的SAAS(Software-as-a-Service,软件即服务)系统,各租户之间数据源按数据库进行隔离,保证了各租户业务数据的独立、安全以及稳定。故系统中存在多个数据源的情况,同时需要按照当前使用者所属租户的不同动态切换数据源,以访问租户所对应的数据源来保证数据的正确性。在SpringBoot系统中多数据源动态切换的方案一般为:继承 AbstractRoutingDataSource类,该类是Spring底层提供的可以通过一个lookup 健值路由数据源的抽象类,是多数据源能够动态切换的核心部件。实现AbstractRoutingDataSource类中的determineCurrentLookupKey方法,该方法返回一个lookup健值来决定最终使用哪个数据源来进行操作,返回的lookup 健值的数据类型必须和存储的多数据源集合中lookup健值保持一致。这里一般通过ThreadLocal线程变量来实现该方法。设置AbstractRoutingDataSource 继承类的targetDataSources和defaultTargetDataSource属性。其中 targetDataSources为多数据源集合,数据类型为Map<Object,Object>,key即为lookup健值,值为数据源DataSource的具体实现。defaultTargetDataSource 为默认数据源的具体实现。数据源的配置一般存放于项目的配置文件中,项目启动时从配置文件读取配置并实例化为具体实现。使用AOP面向切面技术在执行事务方法前根据条件设置ThreadLocal线程变量进行数据源的切换。
虽然上述方案在即有的配置下可以实现多数据源的动态切换,但是在多数据源变更(新增、减少租户或租户数据源调整)的情况下,不能及时的动态进行调整,需要重新将项目打包并进行发布。因此,找到一种在不修改代码的前提下自动获取最新的数据源配置,并通过重写刷新接口,可以在不重新启动业务项目的情况下,动态调整多数据源的配置,实现多数据源之间切换的方法,就成为业界亟待解决的技术问题。
发明内容
针对现有技术存在的上述问题,本发明实施例提供了一种SpringBoot框架下数据源动态切换方法及设备。
第一方面,本发明的实施例提供了一种SpringBoot框架下数据源动态切换方法,包括:创建配置中心项目,以Git为配置仓库,在所述配置中心项目中设置Git配置文件存放地址,并设置所述Git配置文件的参数,对多数据源配置文件进行多数据源lookup键值的设置,将设置后的多数据源配置文件推送至所述Git中;以业务项目作为配置中心客户端,在bootstrap配置文件中设置需要读取的配置中心地址及配置中心参数,在所述业务项目中对所述多数据源配置文件进行动态切换,调用所述业务项目的刷新接口,获取所述多数据源配置文件的配置;抽取AbstractRoutingDataSource继承类的实例,根据所述多数据源配置文件的配置,重新生成多数据源集合,并对所述多数据源集合重新赋值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉神算云信息科技有限责任公司,未经武汉神算云信息科技有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910482969.X/2.html,转载请声明来源钻瓜专利网。