- 安装 Java 17 或 21 并确认 java -version
- 理解 Maven、pom.xml 和依赖下载
- 理解 Spring Boot 启动入口和内置 Web 服务
- 理解 Controller、Service、Mapper、Entity、DTO、VO 的分工
- 掌握 application.yml 里的端口、数据库和环境配置
- 使用 MyBatis 编写基础 CRUD SQL
- 理解参数校验注解、统一响应和错误码
- 理解全局异常处理和统一响应格式
- 理解事务注解 @Transactional 和数据库连接池
- 了解 Swagger/OpenAPI、日志、单元测试和集成测试
- 打包 jar 并用 java -jar 启动
- 理解 dev、test、prod 多环境配置和配置覆盖
项目
用户管理 API
使用 Spring Boot + MyBatis + MySQL 实现用户列表、详情、新增、编辑、删除。
产出物一个企业风格的用户 CRUD 示例。
阅读
阅读 Spring Boot 目录
让 AI 用 Node.js 项目类比解释 Spring Boot 的 Controller、Service、Mapper、DTO。
产出物一份 Java 后端目录对照笔记。
AI 协作
模拟新增用户字段
给用户表新增 avatarUrl 字段,让 AI 说明数据库、Entity、DTO、Mapper、接口文档和前端类型需要怎么同步。
产出物一份跨层修改清单。
API
请求校验和统一错误
为用户新增接口添加字段校验,要求空用户名、非法邮箱、重复邮箱返回前端可读的统一错误响应。
产出物一组校验注解、全局异常处理和接口测试请求。
数据库
事务边界练习
设计创建用户并分配角色的接口,说明为什么需要 @Transactional,以及失败时应该如何回滚。
产出物一段事务伪代码或核心 Service 示例。
Day 1
Java 项目环境与启动
先知道一个 Spring Boot 项目如何下载依赖、如何启动、入口在哪里。
- 安装 JDK 并确认 JAVA_HOME 或 java -version
- 创建或打开一个 Spring Boot 示例项目
- 阅读 pom.xml,识别 web、mysql、mybatis 等依赖
- 启动项目并访问 GET /health 或默认接口
当天产出能在本地启动一个 Spring Boot 服务。
Day 2
阅读项目分层
建立 Spring Boot 与 Express/FastAPI 的目录对照,知道一次请求经过哪里。
- 找出 Controller、Service、Mapper、Entity、DTO 所在目录
- 画出 GET /users 从 Controller 到数据库的调用链
- 阅读 application.yml,识别端口和数据库配置
- 让 AI 用 Node.js 项目类比解释这些目录
当天产出一份 Java 后端目录对照笔记。
Day 3
用户 CRUD 接口
不追求复杂语法,先按固定分层完成用户管理接口。
- 定义 UserEntity、CreateUserRequest、UserResponse
- 实现用户列表、详情、新增、编辑、删除 Controller
- 在 Service 里处理基础业务校验
- 在 Mapper 里编写对应 SQL 或 XML 映射
当天产出一套用户 CRUD 的核心 Java 文件。
Day 4
统一响应与异常处理
让 Java 后端返回前端好处理的稳定 JSON,而不是各种散乱结果。
- 定义 ApiResponse 或 Result 统一响应对象
- 添加 GlobalExceptionHandler
- 处理参数错误、资源不存在、业务冲突、服务器异常
- 为请求 DTO 添加校验注解并验证 400 响应
- 用 Apifox 或 curl 验证成功和失败响应
当天产出统一响应格式和一组失败场景测试记录。
Day 5
打包、运行与 AI 辅助修改
知道 Java 服务如何变成 jar,以及以后让 AI 改接口时该提供哪些上下文。
- 执行 mvn package 或 mvn spring-boot:run
- 使用 java -jar 启动构建产物
- 模拟新增一个字段,列出 DTO、Entity、Mapper、SQL、前端响应需要同步修改的位置
- 了解 @Transactional、连接池和日志配置在项目中的位置
- 整理一份给 AI 修改 Java 接口的上下文模板
当天产出Java 接口修改清单和 jar 启动记录。
Java 后端的重点是工程结构和生态规范。前端开发者先能看懂项目,再逐步能改接口。
Spring Boot
Java 生态中常见的后端应用框架,提供项目启动、配置、Web、数据库等能力。
前端类比:类似一个后端领域的完整工程框架。
Maven
Java 项目的依赖管理和构建工具,pom.xml 记录依赖、插件和打包方式。
前端类比:类似 npm + package.json + build 工具的组合。
Mapper
MyBatis 中负责 SQL 和 Java 方法映射的层。
前端类比:类似封装具体数据请求的 api 方法,只是它面向数据库。
DTO / VO / Entity
DTO 常用于请求或传输,VO 常用于响应视图,Entity 对应数据库表。
前端类比:类似前端把表单类型、接口响应类型和页面展示类型分开。
全局异常处理
集中捕获异常并转换成统一 JSON 响应,避免 Controller 里到处 try/catch。
前端类比:类似 axios 响应拦截器统一处理错误提示。
@Transactional
Spring 的事务注解,用于保证一个业务方法里的多次数据库操作整体成功或失败。
前端类比:类似一组状态更新必须一起完成,不能中途只更新一半。
Bean Validation
通过注解声明请求字段校验规则,比如不能为空、邮箱格式、长度范围。
前端类比:类似表单规则,但后端必须再次校验,不能信任前端。
连接池
复用数据库连接,避免每次请求都新建连接,提高性能并控制资源。
前端类比:类似复用请求客户端或连接资源,而不是每次重新初始化。
常见坑点- 不要一开始陷入大量 Java 语法细节,先看项目分层
- DTO、Entity、VO 不要混用到看不出边界
- 修改接口时要同步检查 Controller、Service、Mapper、SQL 和接口文档
- 配置文件里的数据库连接和生产环境配置要分开
- AI 生成的 Java 代码要特别检查包名、import、注解和事务边界
- 不要在 Controller 里写复杂业务逻辑和 SQL
- 多表写入没有事务注解,异常时可能留下不一致数据
- 生产配置、日志级别、数据库连接池参数不能完全照搬开发环境
生成 Spring Boot CRUD
请使用 Java Spring Boot 写一个用户管理 API。要求使用 Controller、Service、Mapper、DTO 分层,使用 MyBatis 连接 MySQL,提供用户 CRUD 接口,使用统一响应格式,使用全局异常处理,给出项目目录结构、核心代码和 application.yml 配置。我是前端开发,请用 Node.js 后端类比解释 Spring Boot 的目录结构。
阅读 Java 后端
请帮我阅读下面这个 Spring Boot 项目目录。请说明一次请求从 Controller 到数据库会经过哪些文件。如果我要新增一个字段,应该检查哪些类、SQL、DTO 和接口响应。
修改 Java 接口前先列影响面
我要在 Spring Boot 项目里修改【接口名称】。请先不要写代码,先根据我提供的 Controller、Service、Mapper、DTO、表结构,列出需要改哪些文件、是否需要数据库迁移、前端响应类型是否变化、需要补哪些测试。
Java 后端上线前 Review
请 Review 下面的 Spring Boot 代码和配置。请重点检查 Controller 是否过厚、DTO/Entity 是否混用、参数校验是否完整、全局异常是否统一、Mapper SQL 是否安全、事务边界是否正确、application.yml 是否泄露敏感信息、日志和测试是否足够。
- 能找到 Spring Boot 接口入口
- 能看懂 application.yml 里的数据库配置
- 能理解 Controller、Service、Mapper、DTO、Entity 的关系
- 能知道新增字段会影响哪些层
- 能解释参数校验、全局异常和事务注解的作用
- 能让 AI 辅助修改 Java 后端接口