Spring Boot REST常用注解详解与使用示例

Owen
Owen
发布时间:2026-10-13 | 4人浏览过
原创

本文详细解析Spring Boot中构建REST API的常用注解,涵盖控制器定义、URL映射、路径变量、查询参数及请求体绑定等核心操作,通过实例代码说明其用法与配置要求。

准备条件

在深入学习Spring Boot REST注解前,需要掌握以下基础:熟悉Spring容器(IOC)的概念,理解Java基本语法,并了解REST架构风格的核心概念,如HTTP方法(GET、POST、PUT、DELETE)及JSON数据交换格式。

创建Spring Boot项目

建议使用Spring Initializer快速生成项目结构,以确保依赖项配置正确。

  1. 访问工具:打开浏览器访问 https://start.spring.io/。
  2. 配置参数:选择Java作为语言,添加 Web 依赖以支持REST功能;若需简化POJO开发,可添加 Lombok。

点击“Generate”下载生成的ZIP文件,解压后使用IDE(如IntelliJ IDEA)导入项目,等待依赖自动加载完成。

核心注解详解

第1步:定义REST控制器 @RestController

目的:将类标记为REST风格的控制器,自动整合视图解析。

说明:@RestController 等价于 @Controller 与 @ResponseBody 的组合。使用该注解后,方法返回的对象会自动转换为JSON或XML响应,无需额外声明。

@RestController
public class ArticleRestController { 
    // 业务逻辑方法
}

第2步:配置端点映射 @RequestMapping

目的:建立URL路径与方法之间的映射关系。

说明:用于指定路径、HTTP方法及响应媒体类型。以下为通用示例:

@RequestMapping(value = "/articles", method = RequestMethod.GET, produces = "application/json")
public List<Article> getArticles() {
    return new ArrayList<>();
}

此例表示当发起 GET /articles 请求时触发该方法,返回类型为 application/json 的列表。

第3步:便捷的方法映射注解

目的:简化HTTP方法的特定映射,替代冗长的 @RequestMapping(method = ...)。

  • @GetMapping:专用于处理HTTP GET请求。
  • @PostMapping:专用于处理HTTP POST请求。
  • @PutMapping:专用于处理HTTP PUT请求。
  • @DeleteMapping:专用于处理HTTP DELETE请求。

例如,上面的 @RequestMapping 示例可以改写为:@GetMapping("/articles")。

第4步:接收路径参数 @PathVariable

目的:提取URL路径中的动态值。

操作:在 mapping 中使用占位符(如 {id}),并在方法参数上使用 @PathVariable 绑定。

@RequestMapping(value = "/article/{articleSlug}", method = RequestMethod.GET)
public Article getArticle(@PathVariable("articleSlug") String articleSlug) {
    // 根据 slug 获取文章详情
}

访问URL /article/spring-boot-guide 时,参数 articleSlug 将被赋值为 "spring-boot-guide"。

第5步:接收查询参数 @RequestParam

目的:获取URL问号后的键值对参数(如 ?name=value)。

参数:可使用 required=true/false 设置是否必填,使用 defaultValue 设置默认值。

@GetMapping("/search")
public List<Article> search(
   @RequestParam(value = "keyword", required = true) String keyword
) {
    // 根据关键字搜索
}

若请求 URL 不包含 keyword 参数且未设默认值,框架将直接抛出 400 Bad Request 错误。

第6步:处理请求体 @RequestBody

目的:将HTTP请求正文(通常为JSON格式)反序列化为Java对象。

操作:适用于POST或PUT请求,当数据不在URL中而是在Body里时使用。

@PostMapping("/create")
public Article createArticle(@RequestBody NewArticlePojo newArticle) {
    // 保存新文章
}

框架会根据请求头自动将JSON内容映射到 NewArticlePojo 对象中。

排错与注意事项

  • 路径匹配不一致:如果 @RequestMapping 中的占位符名称与 @PathVariable 中的名称不匹配,会导致无法注入参数报错。
  • 类型转换失败:确保 @RequestParam 绑定的参数类型与传入字符串一致(如Date类型需要额外的格式化配置)。
  • 缺少Jackson依赖:Spring Boot Web Starter 已包含 Jackson,若手动移除可能导致JSON转换失败。

总结

Sprng Boot通过丰富的注解实现了高度解耦的REST接口定义。掌握 @RestController 定义范围,利用 @RequestMapping 系列定位资源,并通过 @RequestParam、@PathVariable 和 @RequestBody 准确收集输入,是构建稳定API的基础能力。 以上就是Spring Boot REST常用注解的详细内容,更多关于Spring Boot REST开发技巧的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表