事务管理
事务传播行为?
→ REQUIRED、REQUIRES_NEW、NESTED、SUPPORTS、NOT_SUPPORTED、NEVER、MANDATORY。
事务隔离级别?
→ READ_UNCOMMITTED、READ_COMMITTED、REPEATABLE_READ、SERIALIZABLE。
@Transactional 的原理?
→ AOP 代理,调用方法时在代理中开启/提交/回滚事务。
@Transactional 失效场景?
→ 调用本类方法(未走代理)、方法非 public、异常被捕获/非运行时异常。
编程式事务和声明式事务?
→ 编程式:手写 TransactionTemplate;声明式:@Transactional 注解。
常见面试问题:
Spring事务哪些情况会失效?
回答:
一方面是使用者的问题 自己不会用,比如方法非public,自己在内部try-catch把异常吃了
一方面是提供者的问题 框架处理不了非运行时异常。还有嵌套的事务,也会有失效的问题。
然后追问嵌套的事务,然后就有事务传播事务隔离的问题。
--
修改:PlutoKey FROM 223.104.83.*
FROM 223.104.83.*