Spring Boot 中常用的 MVC 注解

简介: Spring Boot 开发中,核心注解如 `@RestController`、`@RequestMapping`、`@PathVariable`、`@RequestParam` 和 `@RequestBody` 是构建 RESTful 接口的基础。它们分别用于定义控制器、映射请求路径、获取路径参数、查询参数及请求体数据,掌握后可高效开发 Web 接口,适用于前后端分离架构。

在 Spring Boot 开发中,构建 RESTful 接口主要依赖几个核心注解。掌握它们的用法,是编写 Web 接口的基础。

1. @RestController

这是一个组合注解,相当于 @Controller + @ResponseBody

使用后,方法返回值会自动转为 JSON 响应,适合前后端分离项目。

@RestController
public class UserController {
    @GetMapping("/user")
    public User getUser() {
        return new User("Tom");
    }
}

⚠️ 注意:如果需要返回 HTML 页面(如使用 Thymeleaf),应改用 @Controller,否则页面名称会被当作字符串直接输出。


2. @RequestMapping

用于映射 HTTP 请求路径,可作用于类或方法上。支持指定请求方法(GET、POST 等)。

@RequestMapping(value = "/api", method = RequestMethod.GET)

通常配合更具体的注解使用,如 @GetMapping@PostMapping


3. @PathVariable

用于获取 URL 路径中的动态参数。

@GetMapping("/user/{id}")
public User getUser(@PathVariable Long id) {
    // 获取 URL 中的 id,如 /user/123 → id = 123
}

4. @RequestParam

用于获取 URL 查询参数(? 后面的参数)。

@GetMapping("/search")
public List<User> search(@RequestParam String keyword) {
    // 处理 ?keyword=xxx
}

支持设置默认值和是否必填:

@RequestParam(defaultValue = "10") int size

5. @RequestBody

用于接收前端发送的 JSON 请求体,并自动反序列化为 Java 对象。

@PostMapping("/user")
public String createUser(@RequestBody User user) {
    // 接收 {"name": "Alice"} 并转为 User 对象
}

仅适用于 POST、PUT 等带请求体的请求。


小结

注解 用途
@RestController 返回 JSON 数据
@RequestMapping 映射请求路径
@PathVariable 获取路径变量(/user/{id})
@RequestParam 获取查询参数(?key=value)
@RequestBody 接收 JSON 请求体

这些注解构成了 Spring Boot Web 开发的核心,熟练使用即可应对绝大多数接口开发场景。


相关文章
|
JSON Java 数据格式
一文彻底搞懂 @RequestBody 和 @RequestParam 的区别(附实战示例)
本文深入解析Spring Boot中@RequestBody和@RequestParam的区别,通过实战示例详解两者在数据来源、格式、使用场景及验证处理上的差异,帮助开发者正确选择参数绑定方式,提升开发效率与系统安全性。
1712 0
|
9月前
|
XML Java 数据格式
Spring @Configuration 注解详解:用 Java 代码替代 XML 配置
`@Configuration` 是 Spring 实现 Java 配置的核心注解,替代传统 XML,通过 `@Bean` 注册 Bean,结合 `@Import`、`@ComponentScan` 等实现类型安全、可维护的配置方式,推动 Spring 应用现代化。
|
9月前
|
JSON 前端开发 安全
用自定义注解 + 拦截器实现登录鉴权
通过自定义注解 `@Login` 结合 Spring 拦截器,实现声明式登录校验。无需重复编码,自动拦截未登录请求,提升代码可维护性与安全性,适用于前后端分离架构的权限控制实践。
|
9月前
|
JSON 前端开发 Java
Spring MVC 常见注解详解:让 HTTP 请求精准命中你的方法
本文详解Spring MVC核心注解,从@RequestMapping到@GetMapping等快捷方式,结合@PathVariable、@RequestBody等常用配套注解,助你掌握声明式路由开发,提升效率,实现RESTful风格接口设计。
|
9月前
|
JSON 前端开发 Java
Spring Boot 中的 @RequestMapping 与快捷映射注解
`@RequestMapping` 是 Spring MVC 中用于映射 HTTP 请求路径与处理方法的核心注解,可标注在类或方法上。类上使用定义公共前缀,方法上指定具体路径和请求方式。常用属性包括 `value`(路径)、`method`(请求类型)、`produces`(响应类型)。Spring 还提供了 `@GetMapping`、`@PostMapping` 等快捷注解,语义更清晰,推荐优先使用。
|
9月前
|
Java Spring
Spring Boot 中的 @RequestParam:获取查询参数与表单数据
`@RequestParam` 用于提取 HTTP 请求中的查询参数或表单数据,支持设置参数名、是否必填及默认值。适用于 `?key=value` 形式或 POST 表单,字段多时推荐封装为实体类自动绑定,与 `@PathVariable` 按路径取值不同,用途明确,是处理 Web 请求的常用方式。
|
9月前
|
SQL 安全 Java
了解 SQL 注入:原理、危害与防御
SQL注入是Web安全头号威胁,攻击者通过恶意SQL代码窃取、篡改或删除数据。本文详解其原理、危害及防御方案,强调预编译、输入校验、最小权限等核心防护措施,助你筑牢数据库安全防线。
|
9月前
|
Java API Spring
Spring Boot 中的 @PathVariable:获取 RESTful 路径参数
在Spring Boot中,`@PathVariable`用于提取RESTful API URL中的动态参数。支持单个或多个路径变量,参数名一致时可省略value属性,不一致时需显式绑定,是构建清晰、语义化接口的关键注解之一。
|
9月前
|
JSON 前端开发 Java
Spring Boot 封装统一返回的数据结构
本课讲解如何设计统一的JSON响应结构,通过泛型类`JsonResult&lt;T&gt;`封装返回数据,规范包含code、msg、data的标准格式,提升前后端协作效率与API可维护性。