<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>多数据源 on Java 技术探秘</title>
    <link>https://www.szlinkroutes.com/tags/%E5%A4%9A%E6%95%B0%E6%8D%AE%E6%BA%90/</link>
    <description>Recent content in 多数据源 on Java 技术探秘</description>
    <generator>Hugo</generator>
    <language>zh-CN</language>
    <lastBuildDate>Sat, 01 May 2021 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://www.szlinkroutes.com/tags/%E5%A4%9A%E6%95%B0%E6%8D%AE%E6%BA%90/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>springboot 多数据源下，开启事务后，数据源切换失败的处理</title>
      <link>https://www.szlinkroutes.com/categories/%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88/springboot-%E5%A4%9A%E6%95%B0%E6%8D%AE%E6%BA%90%E4%B8%8B%E5%BC%80%E5%90%AF%E4%BA%8B%E5%8A%A1%E5%90%8E%E6%95%B0%E6%8D%AE%E6%BA%90%E5%88%87%E6%8D%A2%E5%A4%B1%E8%B4%A5%E7%9A%84%E5%A4%84%E7%90%86/</link>
      <pubDate>Sat, 01 May 2021 00:00:00 +0000</pubDate>
      <guid>https://www.szlinkroutes.com/categories/%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88/springboot-%E5%A4%9A%E6%95%B0%E6%8D%AE%E6%BA%90%E4%B8%8B%E5%BC%80%E5%90%AF%E4%BA%8B%E5%8A%A1%E5%90%8E%E6%95%B0%E6%8D%AE%E6%BA%90%E5%88%87%E6%8D%A2%E5%A4%B1%E8%B4%A5%E7%9A%84%E5%A4%84%E7%90%86/</guid>
      <description>springboot 多数据源下，开启事务后，数据源切换失败的处理 1. 问题的产生 在之前的文章中，整合了spring多数据源后，开始进行了愉快地编码中。不过这种&amp;quot;愉快&amp;quot;并没有持续多久，就碰到了一个诡异的问题：数据源切换突然不起作用了。经多次代码比对，发现无法切换的方法上加了个注解：@Transactional.&#xA;2. 验证 首先，对无@Transactional注解的代码进行访问：&#xA;@Override public List&amp;lt;User&amp;gt; selectByQuery(UserQuery query) { //省略其他代码 ... } 访问http://localhost:8084/api/user/get?appId=3，结果如下：&#xA;[ { &amp;#34;uid&amp;#34;: 1, &amp;#34;nick&amp;#34;: &amp;#34;db3_张三&amp;#34; }, { &amp;#34;uid&amp;#34;: 2, &amp;#34;nick&amp;#34;: &amp;#34;db3_李四&amp;#34; }, { &amp;#34;uid&amp;#34;: 3, &amp;#34;nick&amp;#34;: &amp;#34;db3_王五&amp;#34; } ] 可以看到，结果正常。&#xA;接着，添加@Transactional注解，再次访问：&#xA;@Override @Transactional(rollbackFor = Exception.class) public List&amp;lt;User&amp;gt; selectByQuery(UserQuery query) { //省略其他代码 ... } 访问http://localhost:8084/api/user/get?appId=3，结果如下：&#xA;[ { &amp;#34;uid&amp;#34;:1, &amp;#34;nick&amp;#34;:&amp;#34;main_张三&amp;#34; }, { &amp;#34;uid&amp;#34;:2, &amp;#34;nick&amp;#34;:&amp;#34;main_李四&amp;#34; }, { &amp;#34;uid&amp;#34;:3, &amp;#34;nick&amp;#34;:&amp;#34;main_王五&amp;#34; } ] 可以看到，获取到的是main数据源中的数据。&#xA;3. 分析 这里引进csdn上一位博主《springboot+mybatis解决多数据源切换事务控制不生效的问题》的分析：</description>
    </item>
  </channel>
</rss>
