本章不重复讲 Java 语法,每个知识点按四列说明:为什么要学 | 学到什么程度够用 | 建议学法 | 缺了会影响哪一章。
学习路径总览
flowchart TD
J[000 Java 基础] --> M[Maven]
J --> H[HTTP / REST]
J --> S[SQL + MySQL]
J --> G[Git]
J --> I[IDEA]
M --> L[分层 / MVC]
H --> L
S --> L
L --> Y[YAML / 配置]
Y --> D[Linux / Docker 可选]
D --> OK[可以开始 01]
G --> OK
I --> OK
Maven(构建工具)
| 维度 | 说明 |
|---|---|
| 为什么要学 | Spring Boot 项目默认用 Maven 管理依赖与打包;pom.xml 里每一行坐标都决定「项目能用什么库」。不懂 Maven,无法加 MyBatis、Redis 等依赖,也无法运行 mvn spring-boot:run。 |
| 学到什么程度够用 | ① 读懂 pom.xml 中 <dependencies>、<parent>、<properties>;② 会执行 mvn clean package、mvn spring-boot:run;③ 知道「改依赖后要刷新/重新导入」;④ 能区分 compile / test / runtime scope 的大意。Gradle 了解「和 Maven 同类工具」即可。 |
| 建议学法 | 官方 Maven in 5 Minutes + 跟做 01 时对照 pom.xml 逐段读。在 IDEA 右侧 Maven 窗口点刷新,观察依赖树变化。 |
Checkpoint:能说出 spring-boot-starter-web 是干什么的,并能在 pom.xml 里新增一个依赖坐标。
HTTP / REST
| 维度 | 说明 |
|---|---|
| 为什么要学 | Controller 对外暴露的就是 HTTP 接口;你要能「用浏览器或 Postman 调通接口」,并读懂返回的 JSON 与状态码。 |
| 学到什么程度够用 | ① 懂 GET / POST / PUT / DELETE 的典型用途;② 常见状态码 200、400、401、404、500 的含义;③ JSON 键值对与 Java 对象的对应直觉;④ 路径参数(/users/{id})与 查询参数(?page=1&size=10)的区别;⑤ REST 风格「资源 + 动词用 HTTP 方法表达」的入门理解。 |
Checkpoint:能解释 GET /api/users/1 与 GET /api/users?page=1 在语义上的区别。
SQL + MySQL
| 维度 | 说明 |
|---|---|
| 为什么要学 | 业务数据落在数据库里;MyBatis 写的是 SQL,表结构不对或 SQL 不会写,持久层无法工作。 |
| 学到什么程度够用 | ① 单表 SELECT / INSERT / UPDATE / DELETE;② WHERE 条件、ORDER BY;③ 主键、自增、NOT NULL 的含义;④ JOIN 的直觉(两表通过外键关联,如 t_order.user_id → t_user.id);⑤ 索引「加速查询、不是魔法」的入门概念。存储过程、复杂优化可后学。 |
| 建议学法 | 在 MySQL 客户端或 IDEA Database 工具里手写 SQL;跟做 下一篇 建 t_user / t_order;无本地 MySQL 时可用 H2 或 Docker(见下文 Linux/Docker)。 |
| 缺了会影响哪一章 | 02(CRUD)、12(动态 SQL、事务、分页)。 |
Checkpoint:能为 t_user 写出「按 id 查一条」和「插入一条含 username、email」的 SQL。
示例表结构:
CREATE TABLE t_user (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(64) NOT NULL,
email VARCHAR(128),
status TINYINT DEFAULT 1,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE t_order (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
user_id BIGINT NOT NULL,
amount DECIMAL(10, 2) NOT NULL,
status VARCHAR(32) DEFAULT 'CREATED'
);
Git(版本控制)
| 维度 | 说明 |
|---|---|
| 为什么要学 | 团队用 Git 协作;本地配置 application-local.yml 等敏感文件要靠 .gitignore 排除;改坏了要能回退。 |
| 学到什么程度够用 | ① git clone / git pull / git push;② git add / git commit;③ 创建与切换分支 git checkout -b feature/xxx;④ 看懂 git status;⑤ 知道 不要 把密码、密钥 commit 进仓库。merge/rebase 深度可入职后再学。 |
| 建议学法 | Pro Git 中文版 前 3 章;在练手仓库里故意改错再 git restore 体验回退。 |
| 缺了会影响哪一章 | 全流程协作;01 中 .gitignore 与本地配置分离;任意章节的代码提交习惯。 |
Checkpoint:能独立 clone 仓库、改文件、commit,并理解 .gitignore 里为什么要写 application-local.yml。
IDE(IntelliJ IDEA)
| 维度 | 说明 |
|---|---|
| 为什么要学 | 全书实操在 IDEA 中最顺畅:运行 Spring Boot、断点调试、Maven 依赖、Database 工具连 MySQL。 |
| 学到什么程度够用 | ① 导入 Maven 项目(Open as Project);② 运行 DemoApplication 主类;③ 断点 Debug 一次请求链路;④ Maven 窗口 Reload;⑤ 可选:安装 Lombok 插件并开启 Annotation Processing(后续实体类可能用到)。 |
| 建议学法 | JetBrains IDEA 入门教程;跟做 01 时全程用 IDEA,不要只用命令行。 |
| 缺了会影响哪一章 | 全书实操;调试异常栈、看 SQL 日志尤其依赖 IDE。 |
Checkpoint:能在 IDEA 里启动 Spring Boot 应用,并在 Controller 行上打断点,用浏览器触发后停住。
分层 / MVC(架构直觉)
| 维度 | 说明 |
|---|---|
| 为什么要学 | 国内 Java Web 项目普遍采用 Controller → Service → Mapper 分层;不懂分层会把 SQL 写在 Controller 里,或把 HTTP 细节塞进 Mapper,后期无法维护。 |
| 学到什么程度够用 | ① 能画出「HTTP 请求进 Controller → Service 编排 → Mapper 访问 DB → 原路返回」;② 说出每层禁止做什么;③ MVC 中 M=模型/数据、V=视图(前后端分离时多为 JSON)、C=Controller 的入门对应。 |
sequenceDiagram
participant C as Client
participant Ctrl as Controller
participant Svc as Service
participant Map as Mapper
participant DB as MySQL
C->>Ctrl: HTTP JSON
Ctrl->>Svc: 调用业务方法
Svc->>Map: 数据访问
Map->>DB: SQL
DB-->>Map: 行数据
Map-->>Svc: Entity
Svc-->>Ctrl: DTO / Entity
Ctrl-->>C: Result JSON
Checkpoint:能口头说明「为什么不在 Controller 里写 @Select SQL」。
YAML / 配置
| 维度 | 说明 |
|---|---|
| 为什么要学 | Spring Boot 用 application.yml 集中管理端口、数据源、邮件、Redis 等;环境切换靠 spring.profiles.active。 |
| 学到什么程度够用 | ① YAML 缩进表示层级(用空格,不用 Tab);② 会写 server.port、spring.datasource.url 等常见键;③ 理解 profile(dev / local / prod)切换;④ 知道敏感项用环境变量或 application-local.yml,且不提交 Git。 |
Checkpoint:能写出带 spring.application.name 和 server.port 的 application.yml,并说明 profile 如何激活。
Linux / Docker(可选)
| 维度 | 说明 |
|---|---|
| 为什么要学 | MySQL、Redis、RabbitMQ 常在 Linux 或容器中运行;会 docker compose up 可快速起本地依赖,会看日志能排查「连不上库」类问题。 |
| 学到什么程度够用 | ① 会看应用日志(tail -f 或 IDEA 控制台);② 用 Docker Desktop + Compose 起 MySQL/Redis;③ 知道端口占用、容器未启动时的典型报错。不必先学 K8s 或 Shell 脚本编程。 |
| 建议学法 | 安装 Docker Desktop;复制 README 中 compose 示例,改 your-password 后启动;用 IDEA Database 连 localhost:3306。 |
Checkpoint:能在本机用 Docker 或本地安装方式让 MySQL 监听 3306,并用客户端连上。
自检清单
- 我能读懂
pom.xml里的<dependency>,并会用 Maven 刷新依赖 - 我知道 GET 与 POST 的区别,能读懂 JSON 响应
- 我能手写单表 CRUD SQL,理解
t_user/t_order表结构 - 我会
git clone、commit,并知道.gitignore的作用 - 我能在 IDEA 里运行 Java 主类并打断点调试
- 我能说出 Controller / Service / Mapper 各负责什么
- 我会写基本的
application.yml(端口、应用名),知道密码用占位符