Spring阶段复盘:容器、事务、持久层与Web边界
答辩方式
先闭卷解释机制,再打开对应固定版本源码指出入口、关键条件与失败分支。每道题必须包含一个反例或可检查步骤;有实测写实测环境,没有运行的变式写预期/推演。本页归复习集合,保留十二题跨主题复盘,不把整阶段归到某个组件。本页短答案用于校准表达,完整机制以当前权威文章为准。站点答案面板不渲染答案内Markdown链接;回到原文后使用下方可见索引。答案内链接保留给Markdown阅读,不宣称在面板可点击。T34负责跨文训练视图关联,本票不伪造本页精确锚点或改训练UI。
权威讲解索引
- 第1—2题:IOC容器与生命周期
- 第3—4题:依赖注入与循环依赖
- 第5题:AOP代理与调用入口
- 第6—8题:事务传播、连接与提交
- 第9题:Boot启动与条件装配
- 第10题:MyBatis会话与缓存
- 第11题:Web分发与Servlet异步
- 第12题:Async代理与上下文恢复
- 本轮扩展:Boot配置绑定与失败(U23)、Actuator 端点与观测(U24)、Spring 测试与真实运行边界(U25)、AOT/Native 与运行恢复(U28)
闭卷验收
本页 12 道闭卷题收进了下方自测面板:先回忆,再展开参考答案与评分点,最后给三档自评。
三轮变化条件
第一轮改变正常输入:工作负载十倍、最大租户或热点键占40%、对象大小或耗时分布改变。重算资源与队列,不沿用原平均数。
第二轮改变故障时序:在持久提交前后、返回确认前后、租约更新后暂停进程。说明事实在哪里、旧请求如何识别、恢复者如何安全重试,不能将超时当未执行。
第三轮改变边界:独立事务域、异步线程、外部接口或跨区副本加入。列出原保证不再覆盖的范围、两个候选方案及验证计划,至少一次根据新条件修订推荐。
实际变化验证:
- 将正常创建改成BFPP提前取Bean,要求指出首次创建栈和漏增强证据。
- 将内层失败改为成功、随后外层回滚,比较NESTED与REQUIRES_NEW持久结果;将afterCommit失败改成物理提交未知,恢复策略必须改变。
- 将Mapper更新改为外部JDBC写、单实例改多实例,解释失效前提失效,不把L1当数据库隔离。
- 将短任务改为30秒作业,或把授权撤销放在排队期间,重算连接/线程/deadline并比较持久任务成本。每轮先给不变量,再给可检查证据,不声称这些组合全部已运行。
验收产物与评分
提交一条核心调用链及关键分支解释、一份受控实验/执行计划/命令证据,以及条件变化后的设计。高级五维均至少3分,架构师进阶需结合系统设计跨模块论证;源码链接列表和字数不代替理解。规则见统一评分。
JDK17、Framework6.1.12/Boot3.3.3、MySQL8.0.39、Redis7.2.5、Kafka3.7.1等为本资料固定教学基线;不同组件的准确tag、依赖和实验范围以对应正文为准,不视作生产版本建议。