@RestControllerAdvice 与 @ControllerAdvice

新手上路,请多包涵
  • @RestControllerAdvice 和 @ControllerAdvice 之间的主要区别是什么?
  • 我们是否应该始终将 @RestControllerAdvice 用于休息服务和 @ControllerAdvice MVC ?

原文由 Om. 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

@RestControllerAdvice 只是 @ControllerAdvice + @ResponseBody 的语法糖,你可以看 这里

我们是否应该始终将@RestControllerAdvice 用于休息服务和@ControllerAdvice MVC?

同样,如上所述, @ControllerAdvice 甚至可以用于 REST Web 服务,但您需要另外使用 @ResponseBody

原文由 developer 发布,翻译遵循 CC BY-SA 3.0 许可协议

另外,我们可以理解为:

@RestControler = @Controller + @ResponseBody

@RestControllerAdvice = @ControllerAdvice + @ResponseBody

请记住 @RestControllerAdvice 是使用 RestfulApi 处理异常的更方便的注释。

操作系统用法示例:

 @RestControllerAdvice
public class WebRestControllerAdvice {

  @ExceptionHandler(CustomNotFoundException.class)
  public ResponseMsg handleNotFoundException(CustomNotFoundException ex) {
    ResponseMsg responseMsg = new ResponseMsg(ex.getMessage());
    return responseMsg;
  }
}

在这种情况下,任何异常 instanceOf CustomNotFoundException 都将在响应主体中抛出。

此处提取的示例: https ://grokonez.com/spring-framework/spring-mvc/use-restcontrolleradvice-new-features-spring-framework-4-3

原文由 Eddy Bayonne 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题