boot工程中@RestController和@Controller有什么区别
时间: 2024-01-12 18:03:23 浏览: 79
@RestController和@Controller是Spring Boot中常用的注解,用于标识一个类是控制器(Controller)。它们之间的区别如下:
1. @RestController注解是@ResponseBody和@Controller的组合注解。它表示该类中的所有方法都会返回JSON或XML格式的数据,而不是视图页面。这意味着@RestController注解适用于构建RESTful API。
2. @Controller注解表示该类是一个控制器,用于处理用户的请求并返回视图页面。它通常与模板引擎(如Thymeleaf、Freemarker等)一起使用,用于生成动态的HTML页面。
因此,如果你的目标是构建RESTful API,你应该使用@RestController注解。如果你的目标是生成视图页面,你应该使用@Controller注解。
下面是一个示例代码,演示了如何在Spring Boot工程中使用@RestController和@Controller注解:
```java
// 使用@RestController注解构建RESTful API
@RestController
public class ApiController {
@GetMapping("/api/hello")
public String sayHello() {
return "Hello, World!";
}
}
// 使用@Controller注解生成视图页面
@Controller
public class ViewController {
@GetMapping("/view/hello")
public String sayHello(Model model) {
model.addAttribute("message", "Hello, World!");
return "hello";
}
}
```
阅读全文