前端与后端 / 技术笔记
Spring Boot 服务开发
从一个业务接口出发,理解 Spring Boot 如何组织依赖、分层代码并保护数据写入。
- 内容章节
- 6 节
- 阅读重点
- 分层与事务
- 示例语言
- Java
直接使用 Java 编写 Web 服务,需要处理服务器启动、路由映射、对象创建和大量配置。Spring Boot 把这些常见工作整理成约定,让开发者更专注于业务。
Java 示例
java
Spring Boot 为应用提供一致的启动方式和组件协作规则,代码精简是随之得到的结果。
1. Spring Boot 帮我们省掉了什么
Spring Boot 会根据依赖和配置推断应用需要的组件。例如加入 Web 依赖后,它会准备内嵌服务器、JSON 转换和请求分发。
文本示意
text
自动配置由一组条件规则驱动,它会根据当前依赖选择常见配置,我们仍然可以覆盖默认值。
2. Controller、Service 和 Repository 怎样分工
三个层次分别处理三类问题:
文本示意
text
Java 示例
java
分层让 HTTP、业务规则和数据访问可以分别变化,修改其中一层时,其余代码能够保持稳定。
3. 依赖注入为什么重要
如果一个类自己创建所有依赖,它就很难替换和测试。
Java 示例
java
Spring 容器负责创建对象并把 Repository 交给 Service。测试时也能传入一个内存实现,不必连接真实数据库。
4. 请求参数怎样校验
参数校验应该靠近请求入口,业务层则继续检查只有业务自己知道的规则。
Java 示例
java
字段不能为空属于格式规则,当前用户能否创建项目属于业务规则。把两者分开,错误提示会更准确。
5. 事务应该放在哪里
事务应该覆盖一个完整的业务动作,它的范围通常会包含多条相互依赖的 SQL。
Java 示例
java
库存减少和订单创建必须一起成功。任何一步失败,事务都会回滚数据库修改。
事务通常放在 Service 层,因为这里最清楚一个业务动作包含哪些写入。
6. 一个服务接口如何完整运行
一次创建订单的流程可以这样理解:
文本示意
text
当接口出现问题时,先判断错误属于请求格式、业务规则还是数据访问,再进入对应层排查。分层的价值会在这种时刻真正体现出来。