RestController 和Controller
时间: 2024-03-07 12:43:55 浏览: 104
@RestController和@Controller是Spring框架中用于处理请求的注解。它们的区别在于返回值的处理方式。
1. @Controller注解用于标识一个类是Spring MVC的控制器,它可以处理用户的请求并返回相应的视图。通常情况下,@Controller注解的方法会返回一个字符串,表示要返回的视图的名称。这个字符串会被解析为具体的视图,然后返回给用户。
2. @RestController注解是Spring4之后新增的注解,它结合了@Controller和@ResponseBody注解的功能。@RestController注解用于标识一个类是Spring MVC的控制器,并且该类的所有方法都会返回数据而不是视图。@RestController注解的方法会将返回值直接转换为JSON格式,并将其作为响应体返回给用户。
下面是一个示例:
```java
@Controller
public class MyController {
@RequestMapping("/hello")
public String hello() {
return "hello";
}
}
@RestController
public class MyRestController {
@RequestMapping("/hello")
public String hello() {
return "hello";
}
}
```
在上面的示例中,`MyController`使用`@Controller`注解,它的`hello()`方法返回一个字符串"hello",表示要返回的视图的名称。而`MyRestController`使用`@RestController`注解,它的`hello()`方法也返回一个字符串"hello",但是这个字符串会直接转换为JSON格式,并作为响应体返回给用户。
阅读全文