🏗️ IoC 容器原理
Bean 的生命周期;BeanDefinition 与注册流程;依赖注入的三种方式;循环依赖与三级缓存;BeanFactory vs ApplicationContext。
第1阶段 IoC 容器 → Bean生命周期、依赖注入第2阶段 AOP 原理 → 代理模式、切面编程第3阶段 事务机制 → 传播行为、失效场景第4阶段 Spring Boot → 自动配置、Starter Spring │ ┌───────────┬───────────┼───────────┐ ▼ ▼ ▼ ▼ IoC AOP 事务 Spring Boot │ │ │ │• Bean生命周期 • JDK代理 • 传播行为 • 自动配置• 依赖注入 • CGLIB • 隔离级别 • SPI机制• 循环依赖 • 切面 • 失效场景 • Starter• 三级缓存 • 自调用 • 分布式事务 • 内嵌容器| 专题 | 考察频率 | 难度 | 核心能力 |
|---|---|---|---|
| IoC 原理 | ★★★★★ | 高 | 三级缓存 |
| AOP 原理 | ★★★★★ | 高 | 代理机制 |
| 事务 | ★★★★★ | 高 | 失效场景 |
| Spring Boot | ★★★★☆ | 中 | 自动配置 |
🏗️ IoC 容器原理
Bean 的生命周期;BeanDefinition 与注册流程;依赖注入的三种方式;循环依赖与三级缓存;BeanFactory vs ApplicationContext。
🔮 AOP 原理
代理模式(JDK 动态代理 vs CGLIB);切面、切点、通知的关系;@Transactional 为何依赖 AOP;自调用失效问题与解决方案。
💾 事务机制
Spring 事务的传播行为(7种);事务隔离级别;@Transactional 的失效场景;编程式 vs 声明式事务;分布式事务入门。
⚡ Spring Boot 自动配置
@SpringBootApplication 的组成;自动配置原理(SPI 机制);条件注解(@ConditionalOnXxx);Starter 机制;内嵌容器启动流程。
| 专题 | 初级 | 中级 | 高级 | 代表问题 |
|---|---|---|---|---|
| IoC 原理 | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | Bean 生命周期有哪些阶段?循环依赖如何解决? |
| AOP 原理 | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | JDK 动态代理和 CGLIB 的区别?AOP 自调用为什么失效? |
| 事务 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | @Transactional 有哪些失效场景?REQUIRED 和 REQUIRES_NEW 的区别? |
| Spring Boot | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | 自动配置是怎么实现的?Spring Boot 启动流程? |
Spring Framework 核心模块:
Core Container├── Core / Beans(IoC 容器核心)├── Context(ApplicationContext,事件、国际化等)└── SpEL(Spring 表达式语言)
AOP & Instrumentation├── AOP(切面编程框架)└── Aspects(AspectJ 集成)
Data Access / Integration├── JDBC(JdbcTemplate)├── ORM(Hibernate/MyBatis 集成)└── Transaction(事务管理)
Web├── Spring MVC(Web 层)├── Spring WebFlux(响应式 Web,Spring 5+)└── WebSocket
Spring Boot(在 Spring Framework 基础上)├── 自动配置(Auto-Configuration)├── Starter(依赖管理)└── 内嵌容器(Tomcat/Jetty/Undertow)第1天 Bean 生命周期 → 能画出完整生命周期图,理解每个扩展点第2天 循环依赖与三级缓存 → 三级缓存的每一级存什么,为什么需要三级第3天 AOP 代理机制 → JDK vs CGLIB 的选择逻辑,自调用问题如何解决第4天 事务传播行为与失效场景 → 7种传播行为要熟,失效场景是高频陷阱题第5天 Spring Boot 自动配置 → SPI + 条件注解的组合机制要讲清楚