关于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
应用方式:默认支持,不需要其他设置。
在开发过程中切换方式以及配置文件与原来一致