您可以使用几个选项。很好的方法是使用异常和类进行处理@ControllerAdvice
:
@ControllerAdvice
class GlobalControllerExceptionHandler {
@ResponseStatus(HttpStatus.CONFLICT) // 409
@ExceptionHandler(DataIntegrityViolationException.class)
public void handleConflict() {
// Nothing to do
}
}
您也可以传递HttpServletResponse
给控制器方法,并设置响应代码:
public RestModel create(@RequestBody String data, HttpServletResponse response) {
// response committed...
response.setStatus(HttpServletResponse.SC_ACCEPTED);
}
有关详细信息,请参阅此出色的博客文章: Spring MVC中的异常处理
在Spring MVC中,使用@ResponseBody
注释是多余的- 它已包含在@RestController
注释中。