在工作中, 从分布式服务来说, 涉及到多个数据源来说, 可能最好的方式是拆分成单一的服务, 形成微服务 。 但是这个其中可能需要有一个度 , 如果所有涉及到多数据源的系统, 最终都拆分成单一服务, 这样的后果一定会造成资源的浪费(当然财大气粗 当我没说)。 所以在项目中多数据源的场景也是必要的,那么接下来梳理一下多数据源的点。
如上图这样 配置多个数据源
维护多数据源
查看源代码是怎么进行切换数据源的 深入spring-jdbc源代码会发现
我们会发现 取数据库是在resolvedDataSources 中去取的 可是我们在配置文件只是配置了targetDataSources 那么数据是怎么来的呢 继续深入发现
在初始化bean的时候就会先加载这个方法 将targetDataSources 数据转为resolvedDataSources (初始化bean为什么先调用方法 afterPropertiesSet 查看https://www.cnblogs.com/weiqihome/p/8922937.html)
接下来我们还需要考虑事务如何配置
多事务配置参考:https://blog.csdn.net/xiaoxufox/article/details/79295528
我之前遇到一个疑问 现在有一个项目A A中有数据源配置 现在要引用一个jar包B Bjar包中也有多数据源配置 那么如何决定使用哪个?需不需要程序去配置
经过查询原来知道了 使用哪个mapper 就会使用哪个mapper配置的数据源 所以程序会自动识别 无需多配置