<!-- 配置事务管理器 -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource">
<ref bean="dataSource" />
</property>
</bean>
<!--配置哪些方法,什么情况下需要回滚--> 
<tx:advice id="serviceAdvice" transaction-manager="transactionManager">  
<tx:attributes>   
<!--当代理的service层中的方法抛出异常的时候才回滚,必须加rollback-for参数--> 
<tx:method name="insert*" propagation="REQUIRED" rollback-for="Throwable"/> 
<tx:method name="del*" propagation="REQUIRED" rollback-for="Throwable"/>  
<tx:method name="update*" propagation="REQUIRED" rollback-for="Throwable"/>  
<!--除了上面标识的方法,其他方法全是只读方法 -->
<tx:method name="*" read-only="true"/>  
</tx:attributes>  
</tx:advice>  
<!-- 配置哪些类的方法需要进行事务管理 -->  
<aop:config proxy-target-class="true">  
<aop:pointcut id="servicePointcut" expression="execution(* com.inspur.paas.*.*(..))"/>  
<aop:advisor pointcut-ref="servicePointcut" advice-ref="serviceAdvice"/>  
</aop:config>
</beans>

pointcut execution的介绍:

执行表达式的格式如下:

execution(modifiers-pattern? ret-type-pattern declaring-type-pattern? name-pattern(param-pattern) throws-pattern?)

除了返回类型模式(上面代码片断中的ret-type-pattern),名字模式和参数模式以外,所有的部分都是可选的。 返回类型模式决定了方法的返回类型必须依次匹配一个连接点。 你会使用的最频繁的返回类型模式是 * ,它代表了匹配任意的返回类型。 一个全称限定的类型名将只会匹配返回给定类型的方法。名字模式匹配的是方法名。 你可以使用 * 通配符作为所有或者部分命名模式。 参数模式稍微有点复杂:() 匹配了一个不接受任何参数的方法, 而 (..) 匹配了一个接受任意数量参数的方法(零或者更多)。 模式 (*) 匹配了一个接受一个任何类型的参数的方法。 模式 (*,String) 匹配了一个接受两个参数的方法,第一个可以是任意类型,第二个则必须是String类型。

下面给出一些常见切入点表达式的例子。

任意公共方法的执行:

execution(public * *(..))

任何一个以“set”开始的方法的执行:

execution(* set*(..))

AccountService 接口的任意方法的执行:

execution(* com.xyz.service.AccountService.*(..))

定义在service包里的任意方法的执行:

execution(* com.xyz.service.*.*(..))

定义在service包或者子包里的任意方法的执行:

execution(* com.xyz.service..*.*(..))

另:
引用类型是<ref local="dataSource" />    local  表示只在本文件中找bean
改成<ref bean="dataSource" />  之后,表示在所有文件中找bean。
需要引入aspectjweaver.jar

转载于:https://www.cnblogs.com/doudouxiaoye/p/5682974.html

spring+ibatis事务管理配置相关推荐

  1. spring,mybatis事务管理配置与@Transactional注解使用[转]

    spring,mybatis事务管理配置与@Transactional注解使用[转] spring,mybatis事务管理配置与@Transactional注解使用 概述 事务管理对于企业应用来说是至 ...

  2. spring,mybatis事务管理配置与@Transactional注解使用

    spring,mybatis事务管理配置与@Transactional注解使用 概述 事务管理对于企业应用来说是至关重要的,即使出现异常情况,它也可以保证数据的一致性. Spring Framewor ...

  3. Spring之事务管理配置

    1. 基于注解的事务配置 1. 在需要添加事务的方法上加上@Transactional注解 2. Spring的配置文件中配置事务管理器 1 <!-- 添加事务管理器组件DataSourceTr ...

  4. 项目中spring事务管理配置分析与修改方案

    概要: 现有spring事务管理配置存在问题:对数据库无关的service层方法,也会进行事务管理(创建数据库链接.提交(回滚)事务.释放连接等),消耗资源. 修改方案:只对执行数据库写操作的serv ...

  5. 【Spring实战】----Spring事务管理配置解析

    上篇说了aop的配置,并且说了Spring事务管理是基于aop的,那么Spring声明式事务的配置就有两种方式:XML配置及注解配置 不多说,直接看配置文件 一.配置文件 applicationCon ...

  6. spring事务管理配置

    <!-- 事务管理配置 --><bean name="transactionManager" class="org.springframework.jd ...

  7. spring教程--事务管理

    Spring的事务管理 1.1 事务: 事务:是逻辑上一组操作,要么全都成功,要么全都失败. 事务特性: ACID: 原子性:事务不可分割 一致性:事务执行的前后,数据完整性保持一致. 隔离性:一个事 ...

  8. Spring入门——事务管理Transaction Manager

    1.事务初识 事务是逻辑上的一组操作,要么全部成功,要么全部失败. 事务具有ACID特性,参考百度百科,具体如下: 原子性(Atomicity):整个事务中的所有操作,要么全部完成,要么全部不完成,不 ...

  9. Spring的事务管理难点剖析:应用分层的迷惑

    2019独角兽企业重金招聘Python工程师标准>>> Web.Service及DAO三层划分就像西方国家的立法.行政.司法三权分立一样被奉为金 科玉律,甚至有的开发人员认为如果要使 ...

最新文章

  1. [优先队列] 洛谷 P2085 最小函数值
  2. Python 出现 can't use a string pattern on a bytes-like object
  3. 【转】Android真机抓屏- Android Screen Monitor
  4. Firefox显示 您的链接不安全 的解决办法
  5. 单位四元数(unit quaternion)
  6. 然之协同系统3.5(OA+CRM+CASH+TEAM)
  7. 脚本实现为一系列账号生成随机密码
  8. linux开发板命令rx,linux 常用命令汇总
  9. 工业数据采集平台SaaS
  10. c语言取反运算详细步骤,C语言取反运算~
  11. 基于JAVA的抽奖系统
  12. imp命令导入指定表_oracle 导入imp 命令
  13. python写cdr插件_CDR插件: YG辅助增强插件 完美支持Win3264位 CorelDRAW X4-2018 免费下载附详细图文教程...
  14. caesar java_java实现caesar加解密算法
  15. 调制深度(modulation depth)是什么?
  16. 元数据是什么?如何管理元数据?
  17. 害怕字体侵权?可以免费商用的字体库来了!
  18. 百万调音师—Audition 变调器
  19. 怎么判断机械表上满弦_腕表冷知识,知道两个以上算我输!
  20. 用 java 安装 mockserver_前端工程化-Mock Server:使用Node+json-server+mock.js搭建Mock Server...

热门文章

  1. react-draft-wysiwyg富文本的使用
  2. java中的Volatile 变量
  3. 【摘录】《程序设计导引及在线实践》之排列
  4. 在VC8里调用VBScript.dll的RegularExpression
  5. 详解数据科学与数理统计的基本概念
  6. 《2018中国区块链行业分析报告》(50页PPT全文)
  7. angular自带的一些api_Angular API
  8. 深入理解MySQL底层架构,看这一篇文章就够了!
  9. Github中国区Star超过1W的大佬和他们的公众号,太强了!
  10. 阿里高级技术专家至简: Service Mesh 在超大规模场景下的落地挑战