你可以将请求主体对象引用到请求范围的Bean。然后将该请求范围的Bean注入你的异常处理程序中以检索请求主体(或你希望引用的其他请求上下文Bean)。
// @Component// @Scope("request")@ManagedBean@RequestScopepublic class RequestContext { // fields, getters, and setters for request-scoped beans}@RestController@RequestMapping("/api/v1/persons")public class PersonController { @Inject private RequestContext requestContext; @Inject private PersonService personService; @PostMapping public Person savePerson(@RequestBody Person person) throws PersonServiceException { requestContext.setRequestBody(person); return personService.save(person); }}@ControllerAdvicepublic class ExceptionMapper { @Inject private RequestContext requestContext; @ExceptionHandler(PersonServiceException.class) protected ResponseEntity<?> onPersonServiceException(PersonServiceException exception) { Object requestBody = requestContext.getRequestBody(); // ... return responseEntity; }}


