原创博文,欢迎转载,转载时请务必附上博文链接,感谢您的尊重。
前言
通过本篇学习,你将加深对 @Transactional 注解以及所有的属性的理解,还可以学习到 @Transactional 注解常见的失效场景【文章最后】。
@Transactional 注解特性如下:
- @Target({ElementType.TYPE, ElementType.METHOD}):设定注解使用范围是类和方法上;
- @Retention(RetentionPolicy.RUNTIME):设定生命周期为全周期,支持使用反射机制的代码读取和使用;
- @Inherited:指明如果该注解修饰的父类被子类继承,那么子类也具备事务特性;
- @Documented:表明这个注解应该被 javadoc工具记录。
对@Target、@Retention、@Inherited、@Documented 注解含义的理解,请请看我另一篇博文:Java注解Target、Retention、Inherited、Documented的作用简述,以@Transactional注解为例(处女座总结)
@Transactional 注解常见的失效场景与分析,请请看我另一篇博文:@Transactional 注解的失效场景,这个问题见过太多的人栽跟头,一篇刨根问底,让面试官都闭嘴
一、参数详解
@Transactional 注解的关键属性大致有九个(如图):
参数 | 意义 |
---|---|
isolation | 事务隔离级别,默认为DEFAULT |
propagation | 事务传播机制,默认为REQUIRED |
readOnly | 事务读写性,默认为false |