编程式事务控制相关对象
- PlatformTransactionManager:
- TransactionDefinition:事务的定义信息的对象,里面有如下方法:
- TransactionStatus:接口提供的是事务具体的运行状态,方法如下:
基于XML的声明式事务控制
什么是声明式事务控制
Spring的声明式事务顾名思义就是采用声明的方式来处理事务。这里所说的声明,就是在配置文件中声明,用在Spring配置文件中声明式的处理事务来代替代码式的处理事务
声明式事务处理的作用
- 事务管理不侵入开发的组件。具体来说,业务逻辑对象就不会意识到自己正在事务管理之中,事实上也应如此,因为事务管理是属于系统层面的服务,而不是业务逻辑的一部分,如果想要改变事务管理策划的话,也只需要在定义文件中重新配置即可
- 在不需要事务管理的时候,只需要在设定文件上修改一下,即可移除事务管理服务,无需改变代码重新编译,这样维护起来更加方便
- Spring声明式事务控制底层就是AOP
声明式事务控制的实现
-
声明式事务控制明确事项:
-
切点方法的事务参数的配置
-
其中,tx:method代表切点方法的事务参数的配置
-
name:切点方法名称(不加括号)
-
isolation:事务的隔离级别
-
propogation:事物的传播行为
-
timeout:超时时间
-
read-only:是否只读
基于注解的声明式事务控制
注解配置声明式事务控制解析
- 使用@Transactional在需要进行事务控制的类或是方法上修饰,注解可用的属性和xml相同
- 注解使用在类上,那么该类的所有方法都使用同一套注解参数配置
- 使用在方法上,不同的方法可以才用不同的事务参数配置
- xml配置文件中要开启事务的注解驱动tx:annotation-driver/
注解声明式事务控制的配置要点
- 平台事务管理器配置(xml)
- 事务通知的配置(@Transactional)
- 事务注解驱动的配置(tx:annotation-driver/)
开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 11 天,点击查看活动详情






