Spring事務深入理解

JPA(Java Persistence Api)是一個基於ORM(或叫O/R mapping ,對象關係映射)的標準規範,在這個規範中JPA只定義標準規則,不提供實現。Hibernate是JPA規範的一種實現。spring框架中提供Spring Data JPA作爲開發者應用Hibernate框架的接口工具;Spring Boot則提供了一款全自動的“自動依賴模塊”:spring-boot-starter-data-jpa

Spring 事務管理分爲編碼式和聲明式的兩種方式。編程式事務指的是通過編碼方式實現事務;聲明式事務基於 AOP,將具體業務邏輯與事務處理解耦。聲明式事務管理使業務代碼邏輯不受污染, 因此在實際使用中聲明式事務用的比較多。聲明式事務有兩種方式,一種是在配置文件中做相關的事務規則聲明,另一種是基於@Transactional 註解的方式。
聲明式事務(@Transactional)基本原理如下:
1. 配置文件開啓註解驅動,在相關的類和方法上通過註解@Transactional標識。
2. spring 在啓動的時候會去解析生成相關的bean,這時候會查看擁有相關注解的類和方法,並且爲這些類和方法生成代理,並根據@Transaction的相關參數進行相關配置注入,這樣就在代理中爲我們把相關的事務處理掉了(開啓正常提交事務,異常回滾事務)。
事物失效場景:
1. @Transactional 應用在非 public 修飾的方法上;
2. 無事物方法調用有事物方法;
3. 數據庫引擎不支持事物;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章