spring mvc 事物失效

 spring mvc 事物失效的缘由:java

 各位侠士都知道,spring事物管理是一个很高大上的东西。spring

   你须要首先了解的知识:数据库

   1 msyql 默认的MyISAM引擎是一种非事务性的引擎,提供高速存储和检索,以及全文搜索能力,适合数据仓库等查询频繁的应用。express

      InnoDB则是一种支持事务的引擎。因此的数据存储在一个或者多个数据文件中,支持相似于Oracle的锁机制。spring-mvc

     因此当你的数据库为默认的存储引擎 MyISAM  ,那么你的事物固然不起做用,它不支持事物嘛mvc

 

2  Spring的事务管理对何种异常进行回滚app

  Spring的事务管理默认只对出现运行期异常(java.lang.RuntimeException及其子类)进行回滚。
若是一个方法抛出Exception或者Checked异常,Spring事务管理默认不进行回滚。函数

   这就要求咱们在自定义异常的时候,让自定义的异常继承自RuntimeException,这样抛出的时候才会被Spring默认的事务处理准确处理。spa

 

3 入口函数必须是public,不然事务不起做用。这一点由Spring的AOP特性决定的。code

 

4、若是你使用了springmvc,多是context:component-scan重复扫描引发的:

    spring-mvc 只扫描controller 

在主容器中(applicationContext.xml),将Controller的注解排除掉 

1

2

3

<context:component-scan base-package="com"

    <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" /> 

</context:component-scan>

相关文章
相关标签/搜索