spring配置注解式事务

环境: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每一天。

你可能感兴趣的:(spring事务,mybatis事务,注解式事务)