美文网首页
Spring声明式事务回滚机制

Spring声明式事务回滚机制

作者: 小小蒜头 | 来源:发表于2018-05-18 16:42 被阅读165次

    需求:本来的流程是用户对将购买的商品订单进行支付,支付成功后商品减库存,然后打印小票,将这笔订单信息存进数据库,如果用户支付请求抛出异常时,数据库里商品库存应该保持不变,本次订单也不会存进数据库,这里我的解决方式就是在这个方法上加上事务处理。

    配置spring-mybatis.xml

    <!-- 事物切面配置 -->
        <tx:advice id="txAdvice" transaction-manager="transactionManager">
            <tx:attributes>
                <tx:method name="insert*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception"/>
                <tx:method name="update*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception"/>
            </tx:attributes>
        </tx:advice>
    
        <aop:config>
            <aop:pointcut id="payPointCut" expression="execution(* com.fuhuitong.applychain.service.impl.POSAppServiceImpl.posPaySuccess(..))"/>
            <aop:advisor advice-ref="txAdvice" pointcut-ref="payPointCut"/>
        </aop:config>
    
      
        <!-- (事务管理)transaction manager, use JtaTransactionManager for global tx -->
        <bean id="transactionManager"
              class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="dataSource"/>
        </bean>
    
        <tx:annotation-driven transaction-manager="transactionManager"/>
    
    添加事务

    注意:要加入一个包,本人因为少这一个包报错,走了很多弯路。

    <dependency>
          <groupId>org.aspectj</groupId>
          <artifactId>aspectjweaver</artifactId>
          <version>1.8.6</version>
     </dependency>
    

    相关文章

      网友评论

          本文标题:Spring声明式事务回滚机制

          本文链接:https://www.haomeiwen.com/subject/vjwgdftx.html