中华视窗是诚信为本,市场在变,我们的诚信永远不变...
说起动态数据源,大家应该也不陌生。例如在读写分离系统中,则要对请求中的读写操作进行分离,让读和写落在不同的数据库上;例如在多租户系统中,则要根据请求来源租户的不同,让其落在不同租户的数据库上;例如在分库应用中,也要根据不同的规则让请求落在不同的数据库上。于是,我们的应用要根据请求的不同,操作不同的数据库,这时就需要动态数据源的帮助。
就是一个出色的动态数据源,他能让你在程序运行过程中动态增删和切换数据源。而且,它十分易用。使用它在一个请求中查询多个数据源变得无比简单。
1 特点
具有以下特点:
中常用的方法有:
以上方法都是多线程安全的。你可以在切面、操作逻辑、注解中调用以上方法,完成数据源的动态增删与切换。
2 快速上手
在\demo文件夹下提供一个示例项目,供大家快速上手。以该demo项目为例,我们介绍的使用。
2.1 引入依赖包
在POM文件中引入的jar包。
2.2 基本配置
在.文件中写入默认的数据源信息,下面为示例。可按照自己的数据源进行修改。
禁止对类的加载,否则该类会去加载固定的数据源。
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
增加对所在包的Bean的扫描。
@ComponentScan(basePackages = {"com.github.yeecode.dynamicdatasource","{other_package_root}"})
2.3 开始使用
至此,使用所需的全部配置就完成了。使用下面方式注入后便可以调用其中的数据源操作方法。
@Autowired
private DynamicDataSource dynamicDataSource;
我们可以按照\demo\sql\DDL.md文件所述建立两个数据源,然后测试的工作情况。
启动o项目得到如下界面。
例如我们可以在一个接口内实现数据源的切换,从而在请求到达/接口时,先后查询了两个数据源中的数据,如代码所示。
可以得到下图所示的结果。下图打印的两行语句分别来自两个数据源。
数据源新增、删除、切换操作可以在切面中、业务逻辑中、注解中等各处进行触发。不做任何限制,交由开发人员按照实际需要实现。
3 总结
怎么样,的使用是不是非常简单。通过Maven仓库直接下载依赖,并且还有Demo项目指导,瞬间上手。
从此,动态数据源的切换So Easy!
实属架构师、程序员秘笈,收藏起来,日后用。其具体接口可能在日后升级中变动,请以最新版本的文档为准。项目地址如下: