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>

相關文章
相關標籤/搜索