1 spring事務控制需要明確
- 第一:JavaEE體系進行分層開發,事務處理位於業務層,Spring提供了分層設計業務層的事務處理解決方案。
- 第二:spring框架爲我們提供了一組事務控制的接口。這組接口是在spring-tx-5.0.2.RELEASE.jar中。
- 第三:spring的事務控制都是基於AOP的,它既可以使用編程的方式實現,也可以使用配置的方式實現。學習的重點是使用配置的方式實現。
2 spring 中事務控制的 API
2.1 PlatformTransactionManager
此接口是spring的事務管理器,它裏面提供了我們常用的操作事務的方法
開發中都是使用它的實現類:
真正管理事務的對象
org.springframework.jdbc.datasource.DataSourceTransactionManager
使用Spring JDBC
或iBatis
進行持久化數據時使用org.springframework.orm.hibernate5.HibernateTransactionManager
使用Hibernate
版本進行持久化數據時使用
2.2 TransactionDefinition
它是事務的定義信息對象,裏面有如下方法:
2.2.1 事務的隔離級別
2.2.2 事務的傳播行爲
2.2.3 超時時間
默認值是-1,沒有超時限制。如果有,以秒爲單位進行設置。
2.2.4 是否只讀事務
建議查詢時設置爲只讀
2.3 TransactionStatus
此接口提供的是事務具體的運行狀態