框架与中间件
面试官翻到简历上"熟悉 Spring"这一行,眉头一皱,问了一句:
"Spring 的 Bean 生命周期说一下。"
候选人小张开始背:"实例化 → 属性填充 → 初始化 → 销毁……"背到一半卡住了。面试官追问:"那 BeanPostProcessor 是什么时候执行的?跟 InitializingBean 是什么关系?"
小张彻底歇菜。
这种场景我见过太多次了。框架是 Java 后端面试的重灾区——太多人停留在"会用"的层面,一追问源码就原形毕露。
今天这个模块,带你从源码层面把主流框架全部过一遍。
一、内容版图
1.1 Spring 生态
1.2 数据层框架
1.3 中间件
二、面试核心:为什么总问框架
因为框架是 Java 后端开发的基本功,但大部分候选人的理解只停留在配置和注解层面。
我面试过这么多人,发现一个规律:
- 会用 Spring:能写
@Service、@Autowired,能配置个 XML - 懂 Spring:能说清 IoC、AOP 的实现原理,知道 BeanPostProcessor 的作用
- 精通 Spring:能讲清楚循环依赖怎么解决、自动装配的优先级、Spring Boot 的 starter 怎么写
这三个层次,在面试中的差距是致命的。
【面试官心理】
我问他 Spring 原理,不是想听他背书。我想知道的是:他在项目中遇到过什么问题,怎么解决的,是只在表面修修补补,还是真的往底层看过。
框架面试的核心,不是考你记住了多少 API,而是考你有没有"透过框架看本质"的习惯。
三、高频面试题地图
3.1 Spring 必考点 🔴
3.2 Spring Boot 必考点 🔴
3.3 MyBatis 必考点 🟡
3.4 消息队列必考点 🟡
3.5 RPC 必考点 🟡
四、学习方法
4.1 从"能用"到"真懂"
每个框架,都问自己三个问题:
- 它解决了什么问题? —— 找到设计的核心动机
- 它是怎么实现的? —— 看源码,理解关键流程
- 它在什么场景下会出问题? —— 生产踩过的坑,才是真正的高分答案
4.2 源码怎么看
源码不是从头看到尾,是带着问题去看。
比如看 Spring Bean 生命周期,不要先翻完所有源码,而是先问清楚"循环依赖"这个问题,然后顺着这个问题去源码里找答案。
框架面试中,会问问题比会背答案重要得多。
4.3 生产案例怎么准备
每个知识点,尽量准备一个生产案例。可以是你踩过的坑,也可以是你看到别人踩的坑。
"线上有个接口超时,排查发现是 MyBatis 二级缓存没关闭,导致脏数据"——这种回答比背十遍缓存原理都管用。
【面试官心理】
面试官最想听到的,不是"我会用 XX 框架",而是"我用过 XX 框架,踩过 XX 坑,是这么排查和解决的"。框架只是工具,真正考察的是你解决问题的能力。
五、导航指引
- Spring 核心原理 — IoC/AOP/循环依赖/事务,Spring 最核心的面试点
- Spring Boot 自动装配 — 自动装配原理、starter 机制、内嵌容器
- Spring Cloud 微服务 — 注册中心、熔断、服务调用、网关
- MyBatis 架构与插件 — 执行器、插件机制、缓存设计
- 消息队列选型与实践 — Kafka/RocketMQ/RabbitMQ 对比与生产问题
- RPC 框架原理 — Dubbo 架构、负载均衡、服务治理
- 搜索引擎实战 — Elasticsearch 倒排索引、Query DSL
- 其他框架 — Spring Security、Validation 等
框架面试的进阶路径:先搞懂核心原理(IoC/AOP/自动装配),再准备生产踩坑案例,最后能用对比的视角选型。做到这三点,P6 到 P7 的跨越就不远了。