SSM之事务配置

标签: spring  aop 事务
2人阅读 评论(0) 收藏 举报
分类:

在spring中实现事务有2种方式,有annotation和xml两种形式。接下来分别讲解一下该如何配置:

先定义一个数据源:

    <bean id="masterDataSource" class="com.alibaba.druid.pool.DruidDataSource"  init-method="init"
          destroy-method="close">
        <property name="url" value="${master.jdbc.url}" />
        <property name="username" value="${master.jdbc.username}" />
        <property name="password" value="${master.jdbc.password}" />
        <property name="driverClassName" value="${master.jdbc.driver}" />
        <property name="maxActive" value="10" />
        <property name="minIdle" value="5" />
    </bean>

1.注解形式配置

<!-- 事务管理器 -->
    <bean id="transactionManager"
          class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <!-- 数据源 -->
        <property name="dataSource" ref="masterDataSource" />

    </bean>

<tx:annotation-driven transaction-manager="transactionManager" />

配置了这行就可以在业务层使用@Transactional(只对public方法有效)注解了。<tx:annotation-driven/>此标签有一个属性proxy-target-class,默认为false,具体是true还是false可以参考http://jinnianshilongnian.iteye.com/blog/1508018有详细的讲解,这里就不多说了。

2.XML形式配置

 首先我们需要先定义一个advice

     <tx:advice id="txAdvice" transaction-manager="transactionManager">
        <tx:attributes>
            <!-- 传播行为 -->
            <tx:method name="save*" propagation="REQUIRED" />标识为以save开头的方法添加事务
            <tx:method name="insert*" propagation="REQUIRED" />
            <tx:method name="add*" propagation="REQUIRED" />
            <tx:method name="create*" propagation="REQUIRED" />
            <tx:method name="delete*" propagation="REQUIRED" />
            <tx:method name="update*" propagation="REQUIRED" />
            <tx:method name="find*" propagation="SUPPORTS" read-only="true" />
            <tx:method name="select*" propagation="SUPPORTS" read-only="true" />
            <tx:method name="get*" propagation="SUPPORTS" read-only="true" />
        </tx:attributes>

    </tx:advice>

然后<aop:config>定义一个切面,在这个切面加上advice

<aop:config>
        <aop:advisor advice-ref="txAdvice"
                     pointcut="execution(* org.shop.service.*.*(..))" /><!-- 包.类.方法(参数)-->
    </aop:config>

另外说下<aop:aspectj-autoproxy />这个标签吧,声明自动为spring容器中那些配置@aspectJ切面的bean创建代理,方便用aop的注解做一些我们想做的事,比如记录系统日志等等

 


查看评论

ssm框架事务配置详解

事务的四大特性:1、一致性:将事务中所做的操作捆绑成一个原子单元,即对于事务所进行的数据修改等操作,要么全部执行,要么全部不执行。 2、原子性:事务在完成时,必须使所有的数据都保持一致状态,而且在相...
  • chen_pt
  • chen_pt
  • 2017-04-13 16:51:57
  • 4142

ssm事务配置不起作用问题

在搭建ssm项目过程中遇到了,配置的事务不起作用的问题,百度了下,原因大概就是包扫描的问题:spring的配置文件application.xml中包扫描不需要扫描@Controller注解的, 具体如...
  • m0_37965853
  • m0_37965853
  • 2017-08-07 16:43:10
  • 1018

ssm框架下配置声明事务正确就是不起作用

关键点:spring MVC 和 spring 是两个管理,自动扫描service 的bean必须在spring的配置文件中。 默认前提是:声明事务和配置没有问题,就是不回滚。 环境代码介绍: ...
  • xiaoyu19910321
  • xiaoyu19910321
  • 2016-09-07 11:27:10
  • 4310

ssm事物配置

  • 2017年09月22日 21:12
  • 26.61MB
  • 下载

13、SSM框架-Spring 使用注解方式配置声明式事务(13)

一、概述         事务管理对于企业应用来说是至关重要的,即使出现异常情况,它也可以保证数据的一致性。spring Framework对事务管理提供了一致的抽象,其特点如下:为不同的事务API...
  • gywtzh0889
  • gywtzh0889
  • 2016-11-03 13:06:56
  • 1243

SSM框架事务管理不起作用,不回滚的原因之一

如果当框架搭建完成,并反复确认框架的配置文件、事务声明都没有问题,但就是不会滚。 原配置文件如下: springmvc的配置文件 ...
  • P_Doraemon
  • P_Doraemon
  • 2017-12-27 14:37:34
  • 519

SSM的事务的配置和使用

1.配置,spring-mvc中添加:
  • jishoujiang
  • jishoujiang
  • 2017-11-29 18:59:20
  • 78

SSM 三大框架---事务处理

在学习三大框架的时候,老师说事务处理是最重要的。必须相当认真的学,但是学了这么久 也只是学到皮毛而已,现在我把我最近学到的事务处理,明白的不明白地都记在我的博客里, 大家一起学习 一.什...
  • xiaoerduo123x
  • xiaoerduo123x
  • 2016-05-12 20:57:03
  • 7024

java SSH和SSM框架 事物配置以及管理

事务的四大特性: 1、一致性:将事务中所做的操作捆绑成一个原子单元,即对于事务所进行的数据修改等操作,要么全部执行,要么全部不执行。 2、原子性:事务在完成时,必须使所有的数据都保持一致状态,而...
  • qq6407521
  • qq6407521
  • 2016-08-18 11:16:44
  • 3326

SSH与SSM学习之Spring23——Spring事务之注解配置方式管理事务

SSH与SSM学习之Spring23Spring事务之注解配置方式管理事务 一导包 二AccountSeviceImpl类 三配置配置文件 1 开启注解管理事务 2 完整配置 四测试 五源码下载SSH...
  • qiwenmingshiwo
  • qiwenmingshiwo
  • 2017-11-01 21:49:29
  • 265
    个人资料
    持之以恒
    等级:
    访问量: 8331
    积分: 284
    排名: 27万+
    最新评论