MyBatis事务管理
2016-09-21 16:04
363 查看
方法1:通过AOP配置提供事务增强,让service包下所有Bean的所有方法拥有事务
注意事务处理的类所在的包,以及方法的名称
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="delete*" propagation="REQUIRED"
read-only="false" rollback-for="java.lang.Exception" no-rollback-for="java.lang.RuntimeException" />
<tx:method name="insert*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.RuntimeException" />
<tx:method name="update*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception" />
<tx:method name="find*" propagation="SUPPORTS" />
<tx:method name="get*" propagation="SUPPORTS" />
<tx:method name="select*" propagation="SUPPORTS" />
</tx:attributes>
</tx:advice>
<aop:config proxy-target-class="true">
<aop:pointcut id="serviceMethod" expression=" execution(* com.brkc.epolice.service..*(..))" />
<aop:advisor pointcut-ref="serviceMethod" advice-ref="txAdvice" />
</aop:config>
方法2:事务注解驱动,标注@Transactional的类和方法将具有事务性,个人比较喜欢这种方法,比较灵活
<tx:annotation-driven transaction-manager="transactionManager" />
方法3:没尝试。。。
注意事务处理的类所在的包,以及方法的名称
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="delete*" propagation="REQUIRED"
read-only="false" rollback-for="java.lang.Exception" no-rollback-for="java.lang.RuntimeException" />
<tx:method name="insert*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.RuntimeException" />
<tx:method name="update*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception" />
<tx:method name="find*" propagation="SUPPORTS" />
<tx:method name="get*" propagation="SUPPORTS" />
<tx:method name="select*" propagation="SUPPORTS" />
</tx:attributes>
</tx:advice>
<aop:config proxy-target-class="true">
<aop:pointcut id="serviceMethod" expression=" execution(* com.brkc.epolice.service..*(..))" />
<aop:advisor pointcut-ref="serviceMethod" advice-ref="txAdvice" />
</aop:config>
方法2:事务注解驱动,标注@Transactional的类和方法将具有事务性,个人比较喜欢这种方法,比较灵活
<tx:annotation-driven transaction-manager="transactionManager" />
方法3:没尝试。。。
相关文章推荐
- HDU 1712 ACboy needs your help (分组背包模版题)
- 2 weekend110的SecureCRTPortable远程连接 + 上传安装jdk + 上传安装配置hadoop
- php常用array函数
- 使用VM VirtualBox设置共享文件夹主机Win虚拟Win
- beanstalkd队列服务安装与使用
- React native 打包发布
- 怎么进行ARP欺骗
- initialize方法和init区别详解
- UVaLive 6844 - Combination
- android保持服务不休眠(持续运行)以及唤醒屏幕的方法
- JAVA多线程(三)模式-Single Threaded Execution
- oracle11g 导出表报EXP-00011:table不存在。
- 状态机
- Javascript对象和原型继承的理解
- 虚拟网卡实验:网卡别名 与 bond多网卡模式
- linux find命令
- 利用arpspoof实现ARP欺骗攻击
- iOS 线程相关-----绝对de干货
- 算法--找出数组中两个只出现一次的数字
- jQuery验证码发送时间秒递减(刷新存储cookie)