关于2023-03-31之后数据源切换@Import(DynamicDataSourceRegister.class)

最后更新:2024-04-15 14:57:59 | 状态:未完成

之前使用注解@Import(DynamicDataSourceRegister.class)的代码会抛出异常。

解决方式:删除Import注解

后期版本中会删除DynamicDataSourceRegister

原因说明:

2023-03-31之前多数据源切换是利用spring提供的AbstractRoutingDataSource为spring返回不同的数据源。

也就是同一个JdbcTemplate需要切换多个DataSource。
应用方式:启动类添加注解@Import(DynamicDataSourceRegister.class)

存在的问题是:
1.隔离性差
2.AbstractRoutingDataSource有可能存在多个实现造成冲突。(比如同一个项目中有其他工具或框架也实现了一个AbstractRoutingDataSource)
3.最主要的是使用方式不友好,经常有项目漏这漏那,导致切换失败。


2023-03-31之后的版本升级了新的切换方式:针对每个数据源生成一个JdbcTemplate,在运行时切换数据源,实际上是切换了JdbcTemplate
应用方式:默认支持,不需要其他设置。


在开发过程中切换方式以及配置文件与原来一致

切换数据源的方式,参考这里
最近更新 搜索 提交