flowchart LR
N0["01 产品分工"]
N1["02 容器与注入"]
N2["03 对象生命周期"]
N3["04 代理与事务"]
N4["05 事件与校验"]
N5["06 缓存与调度"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5
Spring Framework
现代 Java Backend Engineering 学习路线:Spring Framework
0 子目录7 文档

CHAPTER OVERVIEW · 章节概览
先弄清 Spring 各产品的分工,再认识容器如何管理对象;接着学习代理、事务和常用基础设施能力。
本章学习路线
箭头表示建议的学习顺序;先理解问题,再逐步进入实现与实践。
按顺序学习
7Spring Framework:从零开始的阶段导学当服务需要仓库对象,仓库又需要数据库连接时,谁来创建并连接它们?Spring 容器接手了这类工作。先理解对象如何装配,再学习代理和事务,你就能解释注解背后的行为,而不只是记住写法。Spring Framework、Boot、MVC、Data 与 Cloud 的责任边界Spring Framework、Boot 和 Cloud 经常一起出现,却不是三个可以互相替代的框架。可以先问:谁创建对象,谁提供自动配置,谁处理分布式协作?下面按这个分工阅读,再核对版本兼容关系。Spring IoC、依赖注入与 Bean 生命周期结账服务需要查询订单,也需要调用支付接口。把这些依赖交给构造器,既能清楚看到它需要什么,也方便测试时换成替代实现。Spring 容器负责把这样的对象连接起来,下面就从这个过程理解 IoC。Spring AOP、代理与声明式事务为什么在一个方法上写了 @Transactional,有时却没有开启预期的事务?关键在于调用有没有经过 Spring 创建的代理。下面先画清普通对象与代理的关系,再看事务传播和异常处理。Spring 资源、事件、校验、缓存与任务调度除了创建对象,应用还会遇到读取资源、发布事件、校验参数和缓存结果这些重复工作。Spring 为它们提供了公共接口,但每个接口都有适用条件。本章按具体用途介绍,避免把一个注解理解成完整解决方案。Spring 异步、任务调度、Quartz 与 Spring Batch发邮件可以放到后台,报表可能需要每天生成,批量导入还可能要中断后继续。这几类任务看起来都“不立即返回结果”,却需要不同的机制。先分清需求,再选择异步方法、定时任务、Quartz 或 Batch。Spring Framework推荐阅读读 Spring 文档时,建议先围绕一个对象的生命周期展开:怎样定义、怎样注入依赖、何时初始化和关闭。弄清这条线,再读 AOP 和事务,后面的抽象会有落点。