4.2 ROS節點執行管理launch檔案
阿新 • • 發佈:2021-06-23
宣告式事務
-
事務的ACID原則:
- 原子性:確保要麼都成功,要麼都失敗
- 一致性:操作前和操作後的資料一致
- 隔離性:多個業務可能同時操作一個資源,互不干擾,防止資料的損壞
- 永續性:一旦事務被提交,就會持久化到了資料庫,不可改變
宣告式事務: AOP
在xml匯入事務的約束
xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation=" http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">
配置檔案
<!-- 配置宣告式事務 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/> </bean> <!-- 結合aop實現事務的織入 --> <!-- 配置事務通知 --> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <!-- 給方法配置事務 --> <!-- 配置事務的傳播性 propagation="REQUIRED" 預設 --> <tx:attributes> <tx:method name="*" propagation="REQUIRED"/> </tx:attributes> </tx:advice> <!-- 配置事務的切入 --> <!-- execution(* com.saxon.mapper.*.*(..)) com.dada.mapper裡的全部類和全部方法 --> <aop:config> <aop:pointcut id="txPointCut" expression="execution(* com.saxon.mapper.*.*(..))"/> <aop:advisor advice-ref="txAdvice" pointcut-ref="txPointCut"/> </aop:config>
Spring中的事務管理
宣告式事務:
AOP
配置宣告式事務的配置檔案,在部落格開始的配置中已經有,檢視開始檔案
程式設計式事務:
需要在程式碼中進行事務的管理
思考
為什麼需要事務?
- 如果不配置事務,可能存在資料提交不一致的情況下;
- 如果我們不在spring中去配置宣告式事務,我們就需要在程式碼中手動配置事務;
- 事務在專案的開發中十分重要,設計到資料的一致性和完整性問題,不容馬虎