@Controller和@RestController的区别?
时间: 2023-10-07 08:07:06 浏览: 126
@Controller、@RestController注解区别详解
5星 · 资源好评率100%
@Controller和@RestController都是Spring框架中用于处理请求的注解。它们的区别在于返回值的类型和默认行为。
@Controller注解用于标识一个类为控制器,通常用于返回视图。方法返回的是视图名称,会被视图解析器解析为实际的视图。例如:
```java
@Controller
public class HomeController {
@GetMapping("/")
public String home() {
return "home";
}
}
```
而@RestController注解通常用于返回JSON数据。方法返回的是对象,会被自动序列化为JSON格式。例如:
```java
@RestController
public class UserController {
@GetMapping("/users")
public List<User> getUsers() {
return userService.getUsers();
}
}
```
此外,@RestController注解还会将所有方法默认返回的数据类型都设置为JSON格式,而@Controller则需要在方法上添加@ResponseBody注解才能返回JSON格式的数据。
阅读全文