美文网首页
SpringMVC+MyBatis事务不回滚问题的解决办法

SpringMVC+MyBatis事务不回滚问题的解决办法

作者: Mia她爹 | 来源:发表于2017-03-29 09:44 被阅读863次

SpringMVC + mybatis注解式事务不回滚的原因分析@Transactional

在SpringMvc与mybatis集成过程中,遇到事务不生效的问题。经过网上查找相关资料,得以解决。记录一下。

通过web.xml确定工程中所有xml文件的加载顺序。Web.xml,如下图:

Spring容器优先加载由ServletContextListener(对应root-context.xml)产生的父容器,而SpringMVC(对应mvc_dispatcher_servlet.xml)产生的是子容器。子容器Controller进行扫描装配时装配的@Service注解的实例是没有经过事务加强处理,即没有事务处理能力的Service,而父容器进行初始化的Service是保证事务的增强处理能力的。如果不在子容器中将Service exclude掉,此时得到的将是原样的无事务处理能力的Service,因为在多上下文的情况下,

如果同一个bean被定义两次,后面一个优先。

注意:一个bean被定义两次,后面一个优先。这一点很重要,之前我就遇到这个问题,事务管理始终不好使。

先在父容器中,扫描除Controller(前提是,Controller中不需要事务管理,一般情况下Controller中也不应该有事务管理)之外的其它注解的组件,本例中是root-context.xml中配置。如下图:

相关文章

  • SpringMVC+MyBatis事务不回滚问题的解决办法

    SpringMVC + mybatis注解式事务不回滚的原因分析@Transactional 在SpringMvc...

  • 事务相关的问题总结

    一、事务回滚问题 二、事务失效问题 三、事务失效的解决办法 方式一:自己手动创建事务,提交事务,回滚事务(Spri...

  • SpringBoot事务回滚问题

    SpringBoot事务不回滚问题 Spring声明式事务管理默认对 非检查型异常 或 运行时异常 进行事务回滚,...

  • SpringBoot 事务回滚问题排查

    公司遇到一个问题,同样的代码不同机器打包出现事务回滚和不回滚,而每次本地调试事务均能生效。 spring事务配置 ...

  • Spring事务

    先说结论:Spring事务异常回滚,捕获异常不抛出就不会回滚。最近遇到了事务不回滚的情况,我还考虑说JPA的事务有...

  • Spring声明式事务为何不回滚---探究

    1.spring事务不回滚的两个原因 总结一下导致事务不回滚的两个原因:一是Service类内部方法调用,二是tr...

  • 关于@Transactional事务不回滚

    最近在公司有一个需求:大致上是要我去做一个产品的登入的审核接口。因为有大量的对数据库修改、提交以及查询的操作,我使...

  • 关于spring与hibernate整合,开启事务不起作用的原因

    一、前言 事务不回滚,原因可能有很多, 比如配置等等, 但是有一种问题是MySQL本身的问题, 这就比较恶心了。M...

  • mysql 事务回滚,online ddl

    回滚当事务中有DDL时,事务回滚会出错,当事务中只有DML时,回滚一般不会出问题DDL:新建表等操作DML:数据插...

  • spring事务的传播

    前置问题 问题1:spring生成了几个逻辑事务?testTx会回滚吗? method2的事务会生效吗 ? 问题2...

网友评论

      本文标题:SpringMVC+MyBatis事务不回滚问题的解决办法

      本文链接:https://www.haomeiwen.com/subject/osazyttx.html