有7种,分3类
死活不要事务
NEVER,
NOT_SUPPORTED
可有可无的
SUPORTS
有好几种不同的transactionManager,现在公司用的hibernate
transactionInterceptor继承自methodInterceptor,methodInterceptor是一个aop的拦截器,调用invokeWithTransaction方法
spring的transaction优势
1.全局事务
全局一般核JTA(Java Transaction API)相关
2.局部事务
就是我们常用的事务
事务的策略由transactionmanager指定,其实这个相当于SPI机制,就是我们提供接口,然后其他第三方(比如Hibernate实现)
一个事务由TransactionStatus代表,通过getTransaction(TransactionDefinition td)方法获取,
TransactionDefinition制定了以下信息:
1、传播级别
2、隔离级别
3、超时时间
4、是否已读
@TransactionalEventListener用来监听事务,默认是事务提交成功是被触发