为什么 @Transactional 会失效? ⭐⭐⭐⭐⭐ 面试频率:★★★★★ 工作频率:★★★★★ ⚡30 秒速记(复习只看这里) 🟢 一句话 Spring 事务本质依赖 Spring AOP Proxy,只有经过代理对象调用,事务才会生效。 🟡 五大高频原因(★★★★★) 同类内部调用(t
Spring 事务失效 ⭐⭐⭐⭐⭐ 面试频率:★★★★★ 工作频率:★★★★★ ⚡30 秒速记 🟢 一句话 Spring 声明式事务主要依赖 AOP 代理。判断事务为什么失效,首先看方法调用有没有经过 Spring 事务代理,其次看异常是否满足回滚规则。 常见失效场景: 1. 同类内部调用 2.
Spring 事务传播机制 ⭐⭐⭐⭐⭐ 面试频率:★★★★★ 工作频率:★★★★★ ⚡30 秒速记 🟢 什么是事务传播? 一个事务方法调用另一个事务方法时,决定被调用方法应该加入当前事务,还是创建新事务。 最重要的两个: REQUIRED 外面有事务 → 加入 外面没事务 → 创建 默认传播行
Spring AOP 与动态代理 ⭐⭐⭐⭐⭐ 面试频率:★★★★★ 工作频率:★★★★★ ⚡30 秒速记(复习只看这里) 🟢 一句话 AOP 就是在不修改原业务代码的情况下,通过代理对象在方法执行前后增加额外逻辑。 Spring AOP 核心: 原始对象 ↓ Spring创建代理对象
Spring Bean 生命周期 ⭐⭐⭐⭐⭐ 面试频率:★★★★★ 工作频率:★★★★☆ ⚡30 秒速记(复习只看这里) 🟢 一句话 Spring Bean 生命周期就是一个 Bean 从创建、依赖注入、初始化、使用到最终销毁的整个过程。 核心流程: 实例化 ↓ 属性填充 / 依赖注入 ↓
Spring 循环依赖与三级缓存 ⭐⭐⭐⭐⭐ 面试频率:★★★★★ 工作频率:★★★☆☆ ⚡30 秒速记(复习只看这里) 🟢 一句话 Spring 通过三级缓存 + 提前暴露 Bean 引用,解决部分单例 Bean 的循环依赖问题。 例如: A依赖B B又依赖A 核心思想: A还没完全创建完成