- @RestControllerAdvice 和 @ControllerAdvice 之间的主要区别是什么?
- 我们是否应该始终将 @RestControllerAdvice 用于休息服务和 @ControllerAdvice MVC ?
原文由 Om. 发布,翻译遵循 CC BY-SA 4.0 许可协议
原文由 Om. 发布,翻译遵循 CC BY-SA 4.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 许可协议
1 回答2.5k 阅读✓ 已解决
2 回答1.2k 阅读
2 回答1.6k 阅读
2 回答1.6k 阅读
1 回答681 阅读✓ 已解决
1 回答1.1k 阅读
@RestControllerAdvice
只是@ControllerAdvice
+@ResponseBody
的语法糖,你可以看 这里。同样,如上所述,
@ControllerAdvice
甚至可以用于 REST Web 服务,但您需要另外使用@ResponseBody
。