spring-boot 中的 @ControllerAdvice 注释是什么,我们为什么以及何时使用它?

Abd*_*leh 5 java spring spring-boot

我在基于 spring-boot 框架的工作中使用自定义框架,@ControllerAdvice当我需要它来创建自定义异常处理程序类时,我在 spring-boot 中看到了这个注释,但我不知道为什么我必须使用它?

San*_*har 11

@ ControllerAdvice当你有多个REST API控制器做了很多不同的工作是处理异常是非常有用的。

这意味着在编写任何应用程序时,您会遇到异常并在每个方法级别处理它们是乏味且不是最佳的。所以为了克服这个问题,spring 引入了一个概念,@ControllerAdvice它会拦截所有控制器并查找抛出的异常。这是在全局级别意味着@ControllerAdvice每个应用程序只有一个,它将拦截控制器在该特定应用程序上下文中抛出的异常。 有关更多信息,这里有一个很好的解释:

注意:它应该只与 spring MVC 控制器一起使用。

  • 我的意思是说 @ControllerAdivce 只能与使用 Spring MVC 框架创建的控制器一起使用,而不能与使用 Jersey 等其他框架创建的控制器一起使用。 (3认同)