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,采用环绕通知的方式,将配置好的声明式事务加到主流程序中,实现事务特性

 

 

posted @ 2020-11-06 19:44  凸然猿  阅读(97)  评论(0编辑  收藏  举报