Spring 中的事務管理
1. 事務的四個關鍵屬性(ACID)
- 原子性(atomicity): 事務是一個原子操作, 由一系列動作組成. 事務的原子性確保動作要麼全部完成要麼完全不起作用.
- 一致性(consistency): 一旦所有事務動作完成, 事務就被提交. 資料和資源就處於一種滿足業務規則的一致性狀態中.
- 隔離性(isolation): 可能有許多事務會同時處理相同的資料, 因此每個事物都應該與其他事務隔離開來, 防止資料損壞.
- 永續性(durability): 一旦事務完成, 無論發生什麼系統錯誤, 它的結果都不應該受到影響. 通常情況下, 事務的結果被寫到持久化儲存器中.
2. Spring 中的事務管理器的不同實現
3. Spring 的宣告式事務管理
3.1 使用配置檔案進行事務的宣告式管理
<!-- 宣告式事務管理器 -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="pooledDataSource" />
</bean>
<!-- 配置事物增強,如何控制 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<!-- 所有以add開頭的方法都是事物方法 -->
<tx:method name="add*"
<!-- 事務傳播行為 -->
propagation="REQUIRES_NEW"
<!-- 事務隔離級別-->
isolation="READ_COMMITED"
<!---事務回滾屬性-->
rollback-for="java.lang.IOEXception,java.sql.SQLException"
no-rollback-for="java.lang.ArithmeticException"/>
<!-- 以get開始的所有方法 -->
<tx:method name="get*"
<!-- 只讀事務屬性-->
read-only="true"/>
</tx:attributes>
</tx:advice>
<aop:config>
<!-- aop切入點表示式 -->
<aop:pointcut expression="execution(* com.supreme.service..*(..))"
id="txPoint" />
<!-- 配置事務增強 -->
<aop:advisor advice-ref="txAdvice" pointcut-ref="txPoint" />
</aop:config>
3.2 使用@Transactional
註解宣告式的管理事務
<!-- 宣告式事務管理器 -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="pooledDataSource" />
</bean>
<tx:annotation-driven transaction-manager="transactionManager"/>
3.2.1 @Transactional
註解使用細節
3.2.2 @Transactional
註解使用示例
相關文章
- (四)Spring中的事務管理Spring
- Spring的事務管理Spring
- Spring的事務管理(二)宣告式事務管理Spring
- Spring 事務管理Spring
- 解析Spring Boot中的事務管理機制Spring Boot
- Spring系列.事務管理Spring
- Spring系列-事務管理Spring
- Spring中事務管理org.springframework.transactionSpringFramework
- Spring框架中配置事務管理器Spring框架
- Spring的事務管理入門:程式設計式事務管理(TransactionTemplate)Spring程式設計
- Spring事務管理總結Spring
- Spring的事務管理(一) Spring事務管理的實現,事務的屬性(隔離級別,傳播行為,只讀)Spring
- Spring中的事務提交事件Spring事件
- spring宣告式事務管理配置Spring
- Spring事務專題(四)Spring中事務的使用、抽象機制及模擬Spring事務實現Spring抽象
- 分散式鎖和spring事務管理分散式Spring
- Spring事務管理:非常規指南 - marcobehlerSpring
- 使用Spring Boot實現事務管理Spring Boot
- Spring 程式設計式事務管理Spring程式設計
- Spring事務管理(詳解+例項)Spring
- 關於Spring+Mybatis事務管理中資料來源的思考SpringMyBatis
- spring事務管理原始碼分析(二)事務處理流程分析Spring原始碼
- Spring事務(Transaction)管理高階篇一棧式解決開發中遇到的事務問題Spring
- Spring AOP 日誌攔截器的事務管理Spring
- Spring中如何配置Hibernate事務Spring
- Spring中@Transactional事務使用陷阱Spring
- Spring Data JPA中事務ReactiveTransactionManagerSpringReact
- 說說在 Spring 中,如何程式設計實現事務管理Spring程式設計
- spring事務管理原始碼分析(一)配置和事務增強代理的生成流程Spring原始碼
- 可能是最漂亮的Spring事務管理詳解Spring
- spring事務Spring
- Spring 事務Spring
- 聊聊spring事務的propagationSpring
- spring事務的傳播Spring
- Spring學習筆記3(JDBC模板&事務管理)Spring筆記JDBC
- spring2 Aop與事務、許可權管理Spring
- Spring Boo中事務感知快取示例Spring快取
- Spring Data JPA中事務超時TransactionTimedOutExceptionSpringException