返回
以代码示例深入解析SpringBoot Controller层注解的用法
后端
2023-12-23 11:13:03
在SpringBoot中,Controller层起着至关重要的作用,它负责处理来自客户端的请求并返回响应。SpringBoot提供了多种注解来简化Controller层的开发,这些注解可以帮助开发者更轻松地构建RESTful API,处理请求参数,设置会话属性,操作cookie以及处理请求头等。
@RestController
@RestController注解是一个组合注解,相当于@Controller和@ResponseBody的合体。@Controller注解表示该类是一个控制器,而@ResponseBody注解则表示该类中的方法返回的数据直接写入HTTP响应正文中,而不是跳转到某个视图页面。
@RestController
public class HelloController {
@RequestMapping("/hello")
public String hello() {
return "Hello, World!";
}
}
@RequestMapping
@RequestMapping注解用于映射请求路径到处理该请求的控制器方法。该注解可以应用于类或方法上。
@RequestMapping("/user")
public class UserController {
@RequestMapping(value = "/add", method = RequestMethod.POST)
public User add(@RequestBody User user) {
// ...
}
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
public User get(@PathVariable Long id) {
// ...
}
}
@PathVariable
@PathVariable注解用于从请求路径中提取参数值。
@RequestMapping("/user/{id}")
public User get(@PathVariable Long id) {
// ...
}
@RequestParam
@RequestParam注解用于从请求参数中提取参数值。
@RequestMapping("/user/search")
public List<User> search(@RequestParam String name) {
// ...
}
@RequestBody
@RequestBody注解用于从请求正文中提取参数值。
@RequestMapping("/user/add")
public User add(@RequestBody User user) {
// ...
}
@ModelAttribute
@ModelAttribute注解用于将请求参数或会话属性绑定到方法参数上。
@RequestMapping("/user/update")
public User update(@ModelAttribute User user) {
// ...
}
@SessionAttributes
@SessionAttributes注解用于设置会话属性。
@Controller
@SessionAttributes("user")
public class UserController {
@RequestMapping("/user/login")
public String login(@RequestParam String username, @RequestParam String password) {
// ...
session.setAttribute("user", user);
return "redirect:/home";
}
@RequestMapping("/user/home")
public String home(@ModelAttribute User user) {
// ...
return "home";
}
}
@CookieValue
@CookieValue注解用于从请求头中提取cookie值。
@RequestMapping("/user/profile")
public User profile(@CookieValue(name = "userId") Long userId) {
// ...
}
@RequestHeader
@RequestHeader注解用于从请求头中提取header值。
@RequestMapping("/user/avatar")
public User avatar(@RequestHeader(name = "Accept") String accept) {
// ...
}
结语
本文对SpringBoot Controller层常用的注解进行了详细的介绍和代码示例。通过对这些注解的掌握,开发者可以更轻松地构建RESTful API,处理请求参数,设置会话属性,操作cookie以及处理请求头等,从而开发出更加强大和稳定的web应用程序。