1. 程式人生 > 實用技巧 >Spring基礎:宣告式事務

Spring基礎:宣告式事務

Spring中的事務管理

  宣告式事務:AOP,程式碼是橫切進去的不會影響主流程式碼的縱向執行(注意:程式是縱向執行的,AOP是橫切的)

  程式設計式事務:需要在程式碼中,進行事務的管理(與try catch方法相似,程式執行成功就繼續,失敗,則進行資源回滾),縱向的

配置宣告式事務(AOP的思想)

不影響縱向的主流業務程式執行,在橫切面上新增宣告式事務,實現spring整合mybatis這件事

    <!--配置宣告式事務-->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"
> <property name="dataSource" ref="dataSource" /> </bean> <!--結合AOP實現事務織入--> <!--配置事務通知:--> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <!--給那些方法配置事務--> <!--配置事務的傳播特性:new propagation--> <
tx:attributes> <tx:method name="add" propagation="REQUIRED"/> <tx:method name="delete"/> <tx:method name="update"/> <tx:method name="select"/>
       <!——代表所有方法都支援事務——> <tx:method name="*"/> </tx:attributes
> </tx:advice>

配置切入點

 <!--配置事務切面-->
    <aop:config>
        <aop:pointcut id="txPrnitCut" expression="execution(* com.king.mapper.*.*(..))"/>
        <aop:advisor advice-ref="txAdvice" pointcut-ref="txPrnitCut"/>
    </aop:config>

小結:配置宣告式事務的配置依然是AOP,採用環繞通知的方式,將配置好的宣告式事務加到主流程式中,實現事務特性