@RestController的作用

@RestController在Spring Boot中的作用解析
@RestController是Spring Boot中一个非常重要的注解,它结合了@Controller和@ResponseBody两个注解的功能,专门用于构建RESTful Web服务。

核心作用
标记为控制器:表明该类是一个Spring MVC控制器,能够处理HTTP请求

自动响应体转换:所有方法返回值都会自动通过HTTP消息转换器转换为JSON/XML等格式,直接写入HTTP响应体

与@Controller的区别
特性 @RestController @Controller
响应处理 自动@ResponseBody 需要显式@ResponseBody
用途 REST API专用 传统MVC控制器
视图解析 不适用 可返回视图名称
典型用法
java
@RestController
@RequestMapping("/api/users")
public class UserController {

@GetMapping("/{id}")
public User getUser(@PathVariable Long id) {
    // 自动转换为JSON
    return userService.findById(id);
}

@PostMapping
public ResponseEntity<User> createUser(@RequestBody User user) {
    User savedUser = userService.save(user);
    return ResponseEntity.created(URI.create("/users/" + savedUser.getId()))
                         .body(savedUser);
}

}
底层机制
当使用@RestController时,Spring会注册适当的HttpMessageConverter实现

根据请求的Accept头或响应Content-Type,自动选择转换器(如Jackson用于JSON)

省去了手动处理响应序列化的步骤

适用场景
构建前后端分离应用的API接口

微服务间的HTTP通信接口

任何需要返回结构化数据(JSON/XML)而非HTML视图的场景

@RestController极大地简化了RESTful服务的开发,是Spring Boot中构建Web API的首选方式。

posted @ 2025-06-12 15:59  lfqyj  阅读(128)  评论(0)    收藏  举报