Spring Boot 开发 RESTful API 的核心是分层清晰、约定明确、配置极简,通过 @RestController、@GetMapping 等注解快速构建标准接口,按 REST 风格组织 CRUD,并推荐 Controller-Service-Repository 分层实现业务逻辑,辅以 Jackson 时间格式配置、跨域处理、参数校验和 Actuator 监控增强。

Spring Boot 开发 RESTful API 的核心在于分层清晰、约定明确、配置极简。不需要写一堆 XML 或手动注册 Bean,靠注解和自动配置就能快速启动一个标准接口服务。
用 @RestController 定义接口入口
这是最直接的起点。@RestController 是 @Controller + @ResponseBody 的组合,表示这个类所有返回值都会被自动转成 JSON(或 XML)写入 HTTP 响应体。
比如定义一个用户查询接口:
@RestController
@RequestMapping("/api/users")
public class UserController {
@GetMapping
public List
return Arrays.asList(new User(1, "张三"), new User(2, "李四"));
}
}
访问 /api/users 就能拿到 JSON 数组。路径统一前缀用 @RequestMapping,具体动作用 @GetMapping、@PostMapping 等细化。
按 REST 风格组织 CRUD 接口
对应资源操作,HTTP 方法语义要匹配:
- GET /api/users → 查询全部(用 @GetMapping)
- GET /api/users/{id} → 查询单个(用 @PathVariable 获取 id)
- POST /api/users → 新增(用 @RequestBody 接收 JSON 数据)
- PUT /api/users/{id} → 全量更新(通常带完整对象)
- DELETE /api/users/{id} → 删除(同样用 @PathVariable)
Spring Boot 不强制你写满五种,但保持这种映射能让前端调用更直观、文档更易读、后期维护更顺。
分层实现业务逻辑(推荐)
虽然一个 @RestController 方法里直接写代码也能跑通,但真实项目建议拆开:
-
Controller 层:只做请求接收、参数校验、响应包装(如统一返回 Result
) - Service 层:放核心业务规则,比如“新增用户前检查手机号是否已存在”
- Repository 层:负责数据存取,可用 Spring Data JPA(@Repository 接口)或 MyBatis(@Mapper 接口)
这样改需求时,比如把 MySQL 换成 MongoDB,只需动 Repository,其他层几乎不用改。
加点实用增强项
上线前几个小配置很关键:
- 在 application.yml 中加
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss,避免时间字段变时间戳 - 加 @CrossOrigin 注解或全局配置,解决前端跨域问题
- 引入 spring-boot-starter-validation,用 @NotBlank、@Min 等注解校验入参,配合 @Valid 让 Controller 自动拦截非法请求
- 加 spring-boot-starter-actuator,暴露 /actuator/health、/actuator/metrics 等端点,方便监控


















