Java 常用注解扩展对比
一、@Controller 与 @RestController 对比
| 对比维度 | @Controller | @RestController |
|---|---|---|
| 定义 | Spring MVC 的基础控制器注解 | @Controller + @ResponseBody 的组合注解 |
| 返回值处理 | 返回视图名称(需配合视图解析器) | 直接返回 JSON/XML 数据(自动添加 @ResponseBody) |
| 适用场景 | 传统 MVC 架构(如 JSP/Thymeleaf 页面渲染) | RESTful API 开发(前后端分离场景) |
| HTTP 响应头 | Content-Type: text/html(默认) | Content-Type: application/json(默认) |
@Controller
public class WebCtrl {
@GetMapping("/page")
public String page() {
return "index"; // 返回视图名
}
}
@RestController
public class ApiCtrl {
@GetMapping("/data")
public User data() {
return userService.findUser(); // 自动转 JSON
}
}
二、使用 @Data 与 不使用 @Data 对比
| 对比维度 | 使用 @Data | 不使用 @Data |
|---|---|---|


