在近期乙個專案中用了spring mvc作為控制層框架,但卻出現了乙個讓人非常費解的問題:事務控制。
spring mvc的配置檔案名稱為:springmvc-servlet.xml,內容例如以下:
<?
xml version="1.0" encoding="utf-8"?
<?xml version="1.0" encoding="utf-8"?>
我想大家對於這兩個配置檔案都非常熟悉。但我遇到的問題是事務管理器並沒有起作用,當發生異常時沒有按預期進行事務回滾。
非常納悶,檢查了好幾遍配置都沒有問題,但問題出現了,那肯定是自已**出了問題。
後來手動用**例項化出容器再呼叫業務層方法時,事務管理器卻起作用了。異常時事務正常回滾。這就奇怪了,為什麼手動呼叫業務層方法時。事務管理器起作用,而通過頁面呼叫時去不起作用了呢,後經一步步排查,對照,當把
時,兩種方式事務管理器都正常工作了。
由於本人暫對spring事務管理器的具體工作機制不是非常了解,但我自己推測是不同容器之間在事務管理上有各自的一套機制(但可能使用同乙個事務管理器物件),是不能共享的,即使兩個容器之間存在著繼承關係。所以在每個容器的配置檔案裡都要加上這一配置(僅限於註解驅動的事務管理器)
Spring MVC一事務控制問題
在最近乙個專案中用了spring mvc作為控制層框架,但卻出現了乙個讓人很費解的問題 事務控制。spring mvc的配置檔案名為 springmvc servlet.xml,內容如下 我想大家對於這兩個配置檔案都很熟悉,但我遇到的問題是事務管理器並沒有起作用,當發生異常時沒有按預期進行事務回滾。...
事務(一) 事務概念入門
事務 transaction 是由一系列對系統中資料進行訪問與更新的操作所組成的乙個程式執行線邏輯單元 是指作為單個邏輯工作單元執行的一系列操作,要麼完全地執行,要麼完全地不執行。事務處理可以確保除非事務性單元內的所有操作都成功完成,否則不會永久更新面向資料的資源。通過將一組相關操作組合為乙個要麼全...
MySQL事務(一) 事務簡介
事務是資料庫操作的最小工作單元,是一組不可再分割的操作集合,要麼全部執行,要麼全部失敗。在mysql中,事務是一組具有原子性的sql語句,一組 sql 語句要麼全部執行,要麼全部不執行。事務支援是在引擎層實現的,只有使用了 innodb 資料庫引擎的資料庫或表才支援事務,myisam引擎不支援事務,...