@RestController和@Controller
时间: 2023-06-29 18:15:05 浏览: 50
@RestController 和 @Controller 都是 Spring MVC 中的注解,用于标识某个类为处理 HTTP 请求的控制器。
@Controller 注解通常用于传统的 Spring MVC 应用程序中,用于处理 HTTP 请求并返回视图。例如:
```
@Controller
public class MyController {
@RequestMapping("/hello")
public String sayHello() {
return "hello";
}
}
```
上面的代码中,MyController 类被标记为处理 HTTP 请求的控制器,当用户访问 /hello URL 时,会执行 sayHello() 方法并返回名为 "hello" 的视图。
@RestController 注解则用于创建 RESTful Web 服务,可以将方法的返回值直接序列化为 JSON 或 XML 格式的数据,而无需使用视图。例如:
```
@RestController
public class MyRestController {
@GetMapping("/hello")
public String sayHello() {
return "Hello, world!";
}
}
```
上面的代码中,MyRestController 类被标记为处理 HTTP 请求的控制器,当用户使用 GET 方法访问 /hello URL 时,会执行 sayHello() 方法并返回字符串 "Hello, world!",该字符串会被自动序列化为 JSON 或 XML 格式的数据,并返回给客户端。@RestController 注解等价于同时使用 @Controller 和 @ResponseBody 注解。