spring的事務,詳解註解@Transactional
阿新 • • 發佈:2018-12-10
事務管理是應用系統開發中必不可少的一部分。Spring 為事務管理提供了豐富的功能支援。
Spring 事務管理分為程式設計式和宣告式的兩種方式。
程式設計式事務指的是通過編碼方式實現事務,程式設計式事務管理使用TransactionTemplate或者直接使用底層的PlatformTransactionManager。
宣告式事務管理建立在AOP之上的。其本質是對方法前後進行攔截,然後在目標方法開始之前建立或者加入一個事務,在執行完目標方法之後根據執行情況提交或者回滾事務。
顯然宣告式事務管理要優於程式設計式事務管理,這正是spring倡導的非侵入式的開發方式。宣告式事務管理使業務程式碼不受汙染,一個普通的POJO物件,只要加上註解就可以獲得完全的事務支援。和程式設計式事務相比,宣告式事務
宣告式事務有兩種方式,一種是基於tx和aop名字空間的xml配置檔案,另一種就是基於@Transactional註解。
需要明確幾點:
預設配置下 Spring 只會回滾執行時、未檢查異常(繼承自 RuntimeException 的異常)或者 Error。
@Transactional 註解只能應用到 public 方法才有效。