spring中的TransactionDefinition 定义了事务的属性信息获取
1.事务的传播行为
指定事务嵌套(一个需要事务控制的业务中调用了另外一个需要事务控制的业务)的一些处理规则
2.事务的隔离级别
show variables like ‘autocommit‘;查看事务提交策略
select @@tx_isolation;查看事务的隔离级别
当使用数据库连接工具,可以设置提交策略,更改会话级别的;
一般默认是自动提交,如果找不到可以用命令控制事务开启
BEGIN 开始一个事务
ROLLBACK 事务回滚
COMMIT 事务确认
当开启多个事务时,其中一个事务对数据库的更新操作,会不会反应在其他事务中;
3.事务的超时处理
4.事务是否只读
5.事务名字
@Transactional
@Transactional注解 可以作用于接口、接口方法、类以及类方法上。
当注释在接口或者接口方法时 只有在使用基于接口的代理时它才会生效。
放在类上,类内的public 修饰的方法才生效;
放在方法上 只有public 修饰的方法才生效
默认情况下,只有来自外部的方法调用才会被AOP代理捕获,也就是,类内部方法调用本类内部的其他方法并不会引起事务行为,即使被调用方法使用@Transactional注解进行修饰。
原文:https://www.cnblogs.com/hanzhengjie/p/13382037.html