文章目录
前言
Spring事务控制基于注解的方式比xml方式要简便很多,我写的基于注解的实例,是在基于xml事务控制实例的基础上做修改的。
建议先看注解方式实现的事务控制:
【Spring深入学习】Spring的事务控制——基于XML
【Spring深入学习】Spring的事务控制——基于注解
(一)用Spring注解的方式修改业务代码
基于上一篇的代码,我们首先把配置在appliactionContext.xml的Bean注释掉,然后用注解的方式实现对象的依赖注入:
还需要在配置文件中添加一个组件扫描
<!--组件扫描--> <context:component-scan base-package="com.cdd.*"/>
(二)用Spring注解的方式对业务进行事务控制
这里用到的注解是@Transactional
我们可以直接在想要进行事务控制的业务层方法上添加该注解:
添加该注解以后还需要在配置文件中,配置事务注解驱动
<!--事务的注解驱动--> <tx:annotation-driven transaction-manager="transactionManager"/>
然后就可以了,是不是很简洁?
基于xml的事务控制的配置文件与基于注解的事务控制的配置文件对比:
基于注解的实例代码我已经上传到github上了,注意分支:
https://github.com/IsMrChen/Practice/tree/springtest/spring
总结一下基于注解的Spring的事务控制配置要点
其实就三步:
- 平台事务管理器的配置(xml方式)
- 事务通知配置(@Transactional注解配置)
- 事务注解驱动的配置<tx:annotation-driven>
在@Transactional内部我们也可以像xml中配置一样,给它设定一些事务属性:
@Transactional(isolation = Isolation.READ_COMMITTED, readOnly = false)//进行事务控制
同时我们还可以在类上添加@Transactional注解,那么这个类中所有的方法都相当于有事务控制,如果内部某方法需要特殊设定,也可以直接再该方法上再使用注解,事务控制的属性是会就近原则
例如:
OK,相比于Spring的xml事务控制,注解的方法是不是更加简单?真香~