首先此注解位于 org.springframework.transaction.annotation 这个包路径下面,   
事务有两种类别,一种是编程式事务,另一种是声明式事务,显然此注解是声明式事务,这也是spring Aop倡导的非侵入式代码风格,通过方法的前后拦截,实现对事务的控制 几个重要的英文含义:
transaction /træn'zækʃən/ n. 交易;事务;办理;会报,学报
propagation  /,prɒpə'ɡeɪʃən/ n. 传播;繁殖;增
以下是@transactionl注解的源码

package org.springframework.transaction.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target; import org.springframework.core.annotation.AliasFor;
import org.springframework.transaction.TransactionDefinition; @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; true如果事务是有效只读的,则可以设置为布尔标志,允许在运行时进行相应的优化。
boolean readOnly() default false; 指示哪些异常类型必须导致事务回滚。
Class<? extends Throwable>[] rollbackFor() default {}; String[] rollbackForClassName() default {}; Class<? extends Throwable>[] noRollbackFor() default {}; String[] noRollbackForClassName() default {};
} 下面对以上注解各个属性的具体含义,我去查看了spring的官方网站,根据官方文档的解释做如下的理解 @Transactional注解可以作用于类或方法上的事务属性,在类级别上,该注解默认应用于声明类及其子类的所有方法。注意,它不应用于类层次结构上的父类

最新文章

  1. SignalR系列续集[系列8:SignalR的性能监测与服务器的负载测试]
  2. C++ void*的使用
  3. Nginx+keepalived双机热备(主从模式)
  4. 使用shell脚本获取虚拟机中cpu使用率(读/proc/statc)
  5. js获取服务端IP及端口及协议
  6. 从 ALAsset 中取出属性
  7. Sqlserver中实现oralce 数据库的rownumber
  8. dbm数据库
  9. java动态代理(JDK和cglib实现对比)
  10. 设置vim的默认工作路径同时与自动设当前编辑的文件所在目录为当前工作路径不冲突
  11. 配置sonarqube与gitlab sso认证集成
  12. 原生js实现删除class和添加class
  13. SWFUpload多文件上传使用指南
  14. 经典算法分析:n^2与nlgn
  15. 连接PL/SQL
  16. sql去除重复语句
  17. vue 父组件使用子组件中的data或methods
  18. react初始化阶段
  19. loadrunner怎么打印接口返回的参数
  20. openresty + luajit

热门文章

  1. html中a标签的常见用法
  2. Spark(五十二):Spark Scheduler模块之DAGScheduler流程
  3. Eclipse创建的Java Web项目,如何启用外置浏览器访问jsp或者html页面
  4. (转)设置了RemoveIPC=yes 的RHEL7.2 会crash掉Oracle asm 实例和Oracle database实例
  5. Flutter StatefulWidget 有状态组件、页面上绑定数据、改变页面数据
  6. OpenGL ES3使用MSAA(多重采样抗锯齿)的方法
  7. linux系统执行.exe文件
  8. 报错:flutter: Another exception was thrown: Could not find a generator for route RouteSettings
  9. ubuntu 防火墙打开关闭
  10. 有哪些可能的原因导致BDE死掉啊啊,求救了,谢谢