文档章节

spring配置注解式事务

coderJL
 coderJL
发布于 2015/11/27 20:12
字数 541
阅读 70
收藏 1

环境:jdk7 + spring 4 + myBatis 3 

目标:配置spring中的注解式事务,是在service出现异常,数据能够自动回滚。

步骤:

    1.在spring与mybatis整合的配置文件中,配置如下配置

<!-- (事务管理)-->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<!-- 这个注入是在配置文件中配置的数据源bean -->
<property name="dataSource" ref="dataSource" />
</bean>
<!-- 事务控制[事务注解]   -->
<tx:annotation-driven transaction-manager="transactionManager"></tx:annotation-driven>

   2.在service上面加上  @Transactional 这个注解

   3.经过测试,事务生效,而且service中调用service,只要出现异常(service调用的service里面出现异常,外层service的所有数据库操作也可以正确回滚)就可以得到回滚。

   4.特别说一点,try()catch{}这个不可以滥用,要是不管什么地方都加上这个,一旦出现异常catch就会捕获住,会导致事务不会回滚,就算需要捕获异常,也需要细化对应捕获的异常类型,不要动不动就使用Exception这个异常基类,在项目这样的写法,基本上事务就失效,达不到事务回滚的效果。

  总结:我也是项目中开始没人关注事务,现在用户量越来越大了,涉及到很多的用户资料需要增删查改,各种关联,所有我们才重视起事务来,已测试,发现我们的事务等于失效的,因为很多地方没必要的使用try()catch{},而且基本上都是捕获的Exception这个异常基类,现在在苦逼的全项目去修改了。。。

 本博文原创,积累技术,记录生活,如博文中有什么错误,欢迎斧正!!!谢谢,祝你happy每一天。

© 著作权归作者所有

coderJL
粉丝 3
博文 11
码字总数 10517
作品 0
深圳
私信 提问
@Transaction必知必会

1. Spring事务的基本原理 事务管理是应用系统开发中必不可少的一部分。Spring 为事务管理提供了丰富的功能支持。Spring 事务管理分为编码式和声明式的两种方式。编程式事务指的是通过编码方式...

maskwang520
2018/04/15
0
0
Spring编程式和声明式事务实例讲解

Java面试通关手册(Java学习指南):https://github.com/Snailclimb/JavaGuide 历史回顾: 可能是最漂亮的Spring事务管理详解 Spring事务管理 Spring支持两种方式的事务管理: 编程式事务管理...

snailclimb
2018/05/23
0
0
spring,mybatis事务管理配置与@Transactional注解使用

概述 事务管理对于企业应用来说是至关重要的,即使出现异常情况,它也可以保证数据的一致性。 Spring Framework对事务管理提供了一致的抽象,其特点如下: 为不同的事务API提供一致的编程模型...

北京-卫斯理
2015/07/30
596
1
SpringMVC+Spring事物失效问题

1、spring扫描配置 springmvc扫描配置导致事物失效 一个项目中既有SpringMVC又有Spring 的时候,会发生事物失效问题 原因:使用的spring注解+springMVC注解,默认情况下spring应该先加载appli...

宿小帅
2016/10/12
154
0
springboot 中使用事务

直接在service 层的方法上加上@Transactional 注解就ok。 注意事项: 1、Spring 基于注解的声明式事物 @Transactional 默认情况下只会对运行期异常(java.lang.RuntimeException及其子类)和 ...

不开心时不要学习
2018/01/12
2.8K
2

没有更多内容

加载失败,请刷新页面

加载更多

MySQL左连接问题,右表做筛选,左表列依然在

两张表,一张user表,一张user_log表 CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFA......

bengozhong
28分钟前
5
0
重新开始学Java——多线程基础

多线程 进程 主流计算机操作系统都支持同时运行多个任务 , 每个任务通常就是一个程序 , 每个运行中的程序就是一个进程或者多个进程 。 进程的特点 独立性 进程是系统中独立存在的实体 可以...

大家都是低调来的
28分钟前
7
0
注解在Java中是如何工作的?

> 来一点咖啡,准备好进入注解的世界。 注解一直是 Java 的一个非常重要的部分,它从 J2SE 5.0 开始就已经存在了。在我们的应用程序代码中,经常看到 @Override 和 @Deprecated 这样的注解。...

liululee
31分钟前
18
0
Docker 容器连接

Docker 容器连接 容器间的链接有两种方法,你选择其一即可 网络端口映射 docker run -d -P docker run -d -p-P :是容器内部端口随机映射到主机的高端口。-p : 是容器内部端口绑定到指定...

测者陈磊
34分钟前
9
0
车载导航应用中基于Sketch UI主题定制方案的实现

1.导读 关于应用的主题定制,相信大家或多或少都有接触,基本上,实现思路可以分为两类: 内置主题(应用内自定义style) 外部加载方式(资源apk形式、压缩资源、插件等) 其实,针对不同的主题...

阿里云官方博客
39分钟前
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部