你可以使用 @RequestBody 注解来让请求正文通过 HttpMessageConverter 读取并反序列化为一个对象。下面的例子使用了一个 @RequestBody参数:

    1. @PostMapping("/accounts")
    2. public void handle(@RequestBody Account account) {
    3. // ...
    4. }

    你可以使用 MVC 配置的 Message Converters 选项来配置或定制消息转换。

    你可以将 @RequestBodyjavax.validation.Valid或 Spring 的 @Validated 注解结合使用,这两者都会导致标准 bean 验证的应用。默认情况下,验证错误会导致 MethodArgumentNotValidException,它被转化为 400(BAD_REQUEST)响应。另外,你可以通过 Errors 或 BindingResult 参数在控制器中本地处理验证错误,如下面的例子所示:

    1. @PostMapping("/accounts")
    2. public void handle(@Valid @RequestBody Account account, BindingResult result) {
    3. // ...
    4. }