输入标题、正文或标签,查找知识。

最近文档

软件工程 / 构建发布与运行构建环境与持续集成:为什么你电脑上能跑还不够你把收藏功能交给同事,他安装以后却打不开。原来你电脑用的是一个 Node 版本,他用另一个;你本地还有没提交的文件。要交付软件,不只需要源代码,还要让别人按照明确步骤得到能运行的结果。软件工程 / 构建发布与运行部署、发布、回滚与观察:把功能交到用户手里代码已经合并,收藏按钮却没出现在网站上。或者网站更新了,点击时提示找不到数据表。交付涉及代码、配置、数据和流量,不能只用“构建成功”判断完成。本章按一次小发布看这些环节怎样配合。语言基础 / TypeScript跨语言对照TypeScript 独有能力与缺失能力清单这一章适合在学完基础后回查:某个能力是 TypeScript 自己提供的,还是来自 JavaScript、浏览器、Node 或第三方库?先把来源认清,再讨论它擅长什么、缺少什么,就不会把“语言没有内置”误解成“整个生态都做不到”。语言基础语言基础学习路线:以 TypeScript 建立可迁移的编程模型学 TypeScript 时,你会同时遇到 JavaScript 的运行规则和 TypeScript 的类型规则。先把这两件事分清,很多报错就好理解了。按顺序做完前面的练习,再读跨语言对照;对照章节用于解释差异,不要求你同时学会五门语言。后端知识 / 身份权限与安全认证、授权与多租户:登录成功只是第一步用户把地址里的订单号从 42 改成 43,居然看到了别人订单。这不是登录失效,而是资源授权缺失。后端要分别确认调用者是谁,以及这个调用者是否能对这份数据执行当前操作。
1 / 5 · 构建环境与持续集成:为什么你电脑上能跑还不够
↑↓ 浏览 Enter 打开Esc 关闭
Damnatiox
知识文件夹

Spring Framework

现代 Java Backend Engineering 学习路线:Spring Framework

0 子目录7 文档
Spring Framework:产品分工、容器与注入、对象生命周期、代理与事务、事件与校验、缓存与调度

CHAPTER OVERVIEW · 章节概览

先弄清 Spring 各产品的分工,再认识容器如何管理对象;接着学习代理、事务和常用基础设施能力。

本章学习路线

箭头表示建议的学习顺序;先理解问题,再逐步进入实现与实践。

flowchart LR N0["01 产品分工"] N1["02 容器与注入"] N2["03 对象生命周期"] N3["04 代理与事务"] N4["05 事件与校验"] N5["06 缓存与调度"] N0 --> N1 --> N2 --> N3 --> N4 --> N5

按顺序学习

7
Spring 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 和事务,后面的抽象会有落点。