代码改变世界

Spring Boot 中@RestController注解的详解和运用

2025-10-22 15:09  tlnshuju  阅读(72)  评论(0)    收藏  举报

1、该注解的作用

@RestController等价于 @Controller + @ResponseBody
@RestController 表明这个类是一个控制器(Controller),并且它的所有方法返回的数据都会直接写入 HTTP
响应体(Response Body)中,而不是跳转到某个视图页面。

2、与 @Controller 的区别

注解返回值处理适用场景
@Controller视图名称(如 “index”)就是返回的会经过视图解析器跳转到对应页面 传统的 Web 应用,返回 HTML 页面
@RestController JSON/XML 格式就是返回的数据直接作为 HTTP 响应体,通常RESTful API,前后端分离架构

3、示例:

// 使用 @Controller
@Controller
@RequestMapping("/user")
public class UserController
{

@GetMapping("/page")
public String userPage() {

return "user";
// 返回视图名,会跳转到 user.html 页面
}
@GetMapping("/data")
@ResponseBody // 需要额外添加这个注解才能返回 JSON
public User getUserData() {

return new User("John", 25);
}
}
// 使用 @RestController(等价于 @Controller + @ResponseBody)
@RestController
@RequestMapping("/api/user")
public class UserApiController
{

@GetMapping("/info")
public User getUserInfo(