Spring-13-宣告式事務
阿新 • • 發佈:2020-08-29
13. 宣告式事務
13.1 回顧事務
- 把一組業務當成一個業務,要麼都成功,要麼都失敗
- 事務在專案開發中十分重要,涉及到資料的一致性
- 確保完整性和一致性;
事務的ACID原則:
- 原子性
- 一致性
- 隔離性:多個業務操作同一個資源,不互相影響!
- 永續性:事務一旦提交,無論系統發生什麼問題,結果都不會收到影響。
13.2 Spring的事務管理
- 宣告式事務:AOP
- 程式設計式事務:需要再程式碼中,進行事務的管理
思考:為什麼需要事務?
- 如果不配置事務,可能存在資料提交不一致的情況;
- 如果我們不在Spring中配置宣告式事務,則需要在程式碼中手動配置事務!
事務配置:
<!--配置宣告式事務--> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/> </bean> <!--結合AOP實現事務的織入--> <!--第一步 配置事務通知(類)--> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <!--給那些方法配置事務--> <!--配置事務的傳播特性:propagation--> <tx:attributes> <tx:method name="*"/> </tx:attributes> </tx:advice> <!--第二步,配置事務切入--> <aop:config > <aop:pointcut id="txPointCut" expression="execution(* com.kuang.mapper.*.*(..))"/> <aop:advisor advice-ref="txAdvice" pointcut-ref="txPointCut"/> </aop:config>