zoukankan      html  css  js  c++  java
  • Spring动态切换多数据源事务开启后,动态数据源切换失效解决方案

    关于某操作中开启事务后,动态切换数据源机制失效的问题,暂时想到一个取巧的方法,在Spring声明式事务配置中,可对不改变数据库数据的方法采用不支持事务的配置,如下:

    对单纯查询数据的操作设置为不支持事务,可避免一些动态数据源切换失效的场景。如本人在Shiro权限管理开发中,所有的前台页面需要通过jsp的shiro权限控制标签控制页面的一些显示效果,此时很可能因业务需要,查询显示的数据和控制权限的数据不在同一数据库中,需要动态切换数据库链接,页面初始化显示的数据,对应的都是查询数据的操作,判断当前用户是否有权限,也是查询权限资源的操作,故而私认为可选择上面的取消查询操作的事务支持,即可避免动态切换数据源失效的情景。
    这只是想到的一个取巧的避免问题的方法,欢迎有识之士指正;如有更合适的解决方案,共同探讨。

    -------------------------------------------------------------------------正规解决方案-----------------------------------------------------------------------------------------------
    找到了!找到了!下面分享正规的解决方案。。。。
    上文说过了,出现多数据源动态切换失败的原因是因为在事务开启后,数据源就不能再进行随意切换了,也就是说,一个事务对应一个数据源。那么传统的Spring管理事务是放在Service业务层操作的,所以更换数据源的操作要放在这个操作之前进行。也就是切换数据源操作放在Controller层,可是这样操作会造成Controller层代码混乱的结果。故而想到的解决方案是将事务管理在数据持久 (Dao层) 开启,切换数据源的操作放在业务层进行操作,就可在事务开启之前顺利进行数据源切换,不会再出现切换失败了。
    ---------------------
    作者:Woody_Jiang
    来源:CSDN
    原文:https://blog.csdn.net/weixin_39216596/article/details/78912104
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    结对第一次—原型设计(文献摘要热词统计)
    第一次作业-准备篇
    软件工程实践总结
    团队作业第二次—项目选题报告
    软工实践|结对第二次—文献摘要热词统计
    软工实践|结对第一次—原型设计(文献摘要热词统计)
    第一次作业-准备篇
    个人作业——软件工程实践总结作业
    团队作业第二次——项目选题报告
    结对第二次—文献摘要热词统计
  • 原文地址:https://www.cnblogs.com/lxl57610/p/10444823.html
Copyright © 2011-2022 走看看