首页 > 编程语言 > 详细

复习总结:spring实现事务的两种方式

时间:2021-03-12 18:56:01      阅读:42      评论:0      收藏:0      [点我收藏+]

一、 使用spring注解的方式来实现事务

  步骤:

    1)声明事务管理器PlatformTransactionManager的实现类,我们使用mybatis来链接数据库,所以这里我们使用DataSourceTransactionManager的实现类

     在spring配置文件中我们使用bean标签声明

      <bean id="transactionManager"  class="xxx.xxx.xxx.DataSourceTransactionManager">

        <property name="dataSource" value="dataSource">

      </bean>

    2) 开启注解驱动

      <tx:annotation-driver transaction-Manager="transactionManager"/>

    3) 在目标方法上(也可以是目标类)加入@Transactional注解(propagation=propagation.require,isolation=isolation.DEFAULT,rollbackFor={NotNullException.class,NoPointException.class}....)

    详细参数见资料文档。

二、使用aspectJ的AOP来配置管理事务

  步骤: 1)新加入 aspectj 的依赖坐标
      <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-aspects</artifactId>
          <version>5.2.5.RELEASE</version>
        </dependency>

      2)声明事务管理器,我们使用DataSourceTransactionManager   

      <bean id="transactionManager"  class="xxx.xxx.xxx.DataSourceTransactionManager">

        <property name="dataSource" value="dataSource">

      </bean>

     3) 配置事务通知,就是说明我事务要织入到哪些方法上,以及事务的管理参数是哪些(传播属性,回退级别,安全级别等)

      事务通知:切面

      <advice  id="myAdvice" transaction-Manager="transactionManager">

          <tx:attributes>
            <tx:method="buySomeThing"   propagation="REQUIRED" isolation="DEFAULT"  rollbackFor=""/>

            <tx:method="buy*"……/>

            <tx:method="*"……/>

          </tx:attributes>

      </advice>

      4)配置增强器,说明事务通知要作用给谁

       aop配置,通知应用的切入点

       <aop:conf>

         <aop:pointcut expression="execution("* *..service..*.*(..)")"  id="servletPt"/>

         声明增强器,通知和切入点的组合

         <aop:advisor advice-ref="myAdvice"  point-ref="servletPt" />

       </aop:conf>

 

复习总结:spring实现事务的两种方式

原文:https://www.cnblogs.com/lihp-java/p/14525341.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!