Spring Boot 中@RestController注解的详解和使用
Spring Boot 中@RestController注解的详解和使用
- 1、这个注解的作用
- 2、与 @Controller 的区别
- 3、示例:
- 4、 常见使用场景
-
- 4.1、返回 JSON 数据(最常用)
- 4.2、返回各种数据类型
- 5、工作原理
-
- 5.1、请求映射:
- 5.2、参数绑定:
- 5.3、方法执行:
- 5.4、返回值处理:
- 5.5、HTTP 响应:
- 6、工作原理
1、这个注解的作用
@RestController等价于 @Controller + @ResponseBody
@RestController 表明这个类是一个控制器(Controller),并且它的所有方法返回的数据都会直接写入 HTTP
响应体(Response Body)中,而不是跳转到某个视图页面。
2、与 @Controller 的区别
注解 | 返回值处理 | 适用场景 |
---|---|---|
@Controller | 返回的是视图名称(如 “index”) | 会经过视图解析器跳转到对应页面 传统的 Web 应用,返回 HTML 页面 |
@RestController | 返回的数据直接作为 HTTP 响应体,通常是 JSON/XML 格式 | RESTful API,前后端分离架构 |
3、示例:
// 使用 @Controller
@Controller
@RequestMapping("/user")
public class UserController {@GetMapping("/page")public String userPage() {return "user"; // 返回视图名,会跳转到 user.html 页面}@GetMapping("/data")@ResponseBody // 需要额外添加这个注解才能返回 JSONpublic User getUserData() {return new User("John", 25);}
}// 使用 @RestController(等价于 @Controller + @ResponseBody)
@RestController
@RequestMapping("/api/user")
public class UserApiController {@GetMapping("/info")public User getUserInfo(