1、@RequestMapping
@RequestMapping
注解的主要用途是将Web请求与请求处理类中的方法进行映射。Spring MVC
和Spring WebFlux
都通过RquestMappingHandlerMapping
和RequestMappingHndlerAdapter
两个类来提供对@RequestMapping
注解的支持。
@RequestMapping
注解对请求处理类中的请求处理方法进行标注;@RequestMapping
注解拥有以下的六个配置属性:
value
:映射的请求URL或者其别名method
:兼容HTTP的方法名params
:根据HTTP参数的存在、缺省或值对请求进行过滤header
:根据HTTP Header的存在、缺省或值对请求进行过滤consume
:设定在HTTP请求正文中允许使用的媒体类型product
:在HTTP响应体中允许使用的媒体类型
提示:在使用@RequestMapping
之前,请求处理类还需要使用@Controller
或@RestController
进行标记
下面是使用@RequestMapping
的两个示例:
@Controller
public class DemoController {
@RequestMapping(value = "/demo/home", method = RequestMethod.GET)
public String home() {
return "/home";
}
}
@RequestMapping
还可以对类进行标记,这样类中的处理方法在映射请求路径时,会自动将类上@RequestMapping
设置的value
拼接到方法中映射路径之前,如下:
@Controller
@RequestMapping(value = "/demo")
public class DemoController {
@RequestMapping(value = "/home", method = RequestMethod.GET)
public String home() {
return "/home";
}
}
@RequestBody
@RequestBody
在处理请求方法的参数列表中使用,它可以将请求主体中的参数绑定到一个对象中,请求主体参数是通过HttpMessageConverter
传递的,根据请求主体中的参数名与对象的属性名进行匹配并绑定值。此外,还可以通过@Valid
注解对请求主体中的参数进行校验。
下面是一个使用@RequestBody
的示例:
@RequestController
@RequestMapping("/api/v1")
public class UserController {
@Autowired
private UserService userService;
@PostMapping("/users")
public User createUser(@Valid @RequestBody User user) {
return userService.save(user);
}
}
评论