1. 程式人生 > 其它 >4.2 ROS節點執行管理launch檔案

4.2 ROS節點執行管理launch檔案

宣告式事務

  • 事務的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中去配置宣告式事務,我們就需要在程式碼中手動配置事務;
  • 事務在專案的開發中十分重要,設計到資料的一致性和完整性問題,不容馬虎