码迷,mamicode.com
首页 > 编程语言 > 详细

spring的事务管理

时间:2019-11-15 18:30:30      阅读:74      评论:0      收藏:0      [点我收藏+]

标签:except   required   pre   tle   ola   advice   接口   drive   思想   

spring事务管理

spring的事务管理是把事务由DAO层提升到service层来管理;它实际上是对于AOP思想的应用。我们只需要配置好平台事务管理器这一个“切面”就可以了;

spring中“平台事务管理接口”负责完成事务的提交和回滚;接口图解如下:

技术图片

对于 JDBC和Mybatis可以对“DataSourceTransactionManager” 这个事务管理接口的实现类进行配置;

如下是配置JDBC事务管理

xml实现

<!--注册平台事务管理器:切面/顾问-->
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <!--引用自己配置的数据库-->
    <property name="dataSource" ref="myDataSource"/>
</bean>

<!--注册事务通知-->
<tx:advice id="txAdvice" transaction-manager="txManager">
    <!--指定连接点-->
    <tx:attributes>
        <!--可以设置事务隔离级别,和传播行为-->
        <tx:method name="open*" isolation="DEFAULT" propagation="REQUIRED"/>
        <!--添加异常回滚-->
        <tx:method name="buy*" isolation="DEFAULT" propagation="REQUIRED" rollback-for="Exception"/>
    </tx:attributes>
</tx:advice>

<!--aop配置-->
<aop:config>
    <aop:advisor advice-ref="txAdvice" pointcut="execution(* *..service.*.*(..))"/>
</aop:config>

注解实现

需要在配置文件中需要加上事务注解的驱动

<!--注册事务注解驱动-->
<tx:annotation-driven transaction-manager="txManager"/>

事务接口的定义需要在service的实现类中加上事务的注解

@Transactional(rollbackFor = Exception.class)

技术图片

其他配置可以通过springDI进行注入;

spring事务管理相关Demo可到GitHub参考07和08

spring的事务管理

标签:except   required   pre   tle   ola   advice   接口   drive   思想   

原文地址:https://www.cnblogs.com/thegarden/p/11868477.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!