概述
文章目录
- Spring事务常用注解
- 1. @EnableTransactionMannagement
- 1.1 作用
- 1.2 属性分析
- 2. @Transactional
- 2.1 作用
- 2.2 属性分析
- 3. @TransactionEventListener
- 3.1 作用
- 3.2 属性分析
Spring事务常用注解
1. @EnableTransactionMannagement
1.1 作用
表示spring开启注解事务配置的支持
1.2 属性分析
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Import(TransactionManagementConfigurationSelector.class)
public @interface EnableTransactionManagement {
/**
* 指定基于目标类代理还是基于接口代理。
* 默认采用JDK官方的基于接口代理。
*/
boolean proxyTargetClass() default false;
/**
* 指定事务通知是如何执行的。默认是通过代理方式执行的。
* 如果是同一个类中调用的话,请采用AdviceMode.ASPECTJ
*/
AdviceMode mode() default AdviceMode.PROXY;
/**
* 指示在特定连接点应用多个通知时事务处理的执行顺序。
* 默认值是:最低优先级(Integer.MAX_VALUE)
*/
int order() default Ordered.LOWEST_PRECEDENCE;
}
2. @Transactional
2.1 作用
spring注解配置事务的核心注解,可以出现在接口、类、方法上
接口使用:当前接口的所有实现类中重写接口的方法均有事务支持
类上:当前类中的所有方法有事务支持
方法上:当前方法有事务支持
优先级: 方法>类>接口
2.2 属性分析
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
public @interface Transactional {
/**
* 指定事务管理器的唯一标识
*/
@AliasFor("transactionManager")
String value() default "";
/**
* 指定事务管理器的唯一标识
*/
@AliasFor("value")
String transactionManager() default "";
/**
* 指定事务的传播行为
*/
Propagation propagation() default Propagation.REQUIRED;
/**
* 指定事务的隔离级别
*/
Isolation isolation() default Isolation.DEFAULT;
/**
* 指定事务的超时时间
*/
int timeout() default TransactionDefinition.TIMEOUT_DEFAULT;
/**
* 指定事务是否只读
*/
boolean readOnly() default false;
/**
* 通过指定异常类的字节码,限定事务在特定情况下回滚
*/
Class<? extends Throwable>[] rollbackFor() default {};
/**
* 通过指定异常类的全限定类名,限定事务在特定情况下回滚
*/
String[] rollbackForClassName() default {};
/**
* 通过指定异常类的字节码,限定事务在特定情况下不回滚
*/
Class<? extends Throwable>[] noRollbackFor() default {};
/**
* 通过指定异常类的全限定类名,限定事务在特定情况下不回滚
*/
String[] noRollbackForClassName() default {};
}
3. @TransactionEventListener
3.1 作用
用于配置事务的监听器,使我们在事务提交和回滚前后可以做一些额外的功能
3.2 属性分析
@Target({ElementType.METHOD, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@EventListener
public @interface TransactionalEventListener {
/**
* 指定事务监听器的执行是在何时。
* 取值有:
* 事务提交之前
* 事务提交之后 默认值
* 事务回滚之后
* 事务执行完成之后
*/
TransactionPhase phase() default TransactionPhase.AFTER_COMMIT;
/**
* 若没有事务的时候,对应的event是否已经执行 默认值为false表示 没事务就不执行了
*/
boolean fallbackExecution() default false;
/**
* 指定事件类的字节码
*/
@AliasFor(annotation = EventListener.class, attribute = "classes")
Class<?>[] value() default {};
/**
* 它和value属性的作用是一样的
*/
@AliasFor(annotation = EventListener.class, attribute = "classes")
Class<?>[] classes() default {};
/**
* 用于指定执行事件处理器的条件。取值是基于Spring的el表达式编写的。
*/
String condition() default "";
}
最后
以上就是温柔橘子为你收集整理的Spring事务常用注解的全部内容,希望文章能够帮你解决Spring事务常用注解所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复