Spring MVC是一种用于构建Web应用程序的框架,它基于MVC(Model-View-Controller)模式并使用了Java Servlet API。它提供了许多注解来简化Web应用程序的开发过程。其中一个常用的注解是@RestController
。
@RestController
是一个用于Spring MVC控制器类的注解,它表示这个类是一个RESTful Web服务的控制器。它可以用来替换传统的@Controller注解,不仅可以使用Spring MVC的所有功能,还可以使用Spring Boot的自动配置功能来简化配置。当Spring Boot应用程序中使用@RestController
注解时,它还会自动启用Spring MVC的默认配置。
1. 概述
@RestController
注解用于标记一个Spring MVC控制器类,该类处理RESTful Web服务请求。它是一个组合注解,包含@Controller
和@ResponseBody
两个注解。@Controller
注解表示这是一个控制器类,@ResponseBody
注解表示响应的内容会直接写入HTTP响应体中。
2. 语法
@RestController
注解的语法如下:
@RestController
public class MyController {
// ...
}
3. 示例
下面是一个使用@RestController
注解的示例:
@RestController
@RequestMapping("/api")
public class MyRestController {
@GetMapping("/hello")
public String sayHello() {
return "Hello, World!";
}
@PostMapping("/users")
public User createUser(@RequestBody User user) {
// create user
return user;
}
@DeleteMapping("/users/{id}")
public void deleteUser(@PathVariable("id") Long id) {
// delete user by id
}
@PutMapping("/users/{id}")
public User updateUser(@PathVariable("id") Long id, @RequestBody User user) {
// update user by id
return user;
}
}
在上面的示例中,@RestController
注解标记了一个名为MyRestController
的类,该类处理/api
路径下的RESTful Web服务请求。该类包含四个方法,分别处理GET、POST、DELETE和PUT请求,并返回不同类型的响应。
@GetMapping
、@PostMapping
、@DeleteMapping
和@PutMapping
注解分别表示处理GET、POST、DELETE和PUT请求,并指定了每个请求的URL路径。@RequestBody
注解表示该请求的主体将被解析为Java对象,并将其注入到方法参数中。@PathVariable
注解表示该请求的URL路径中的变量将被解析并注入到方法参数中。