【问题标题】:Why @ExceptionHandler annotated methods are protected?为什么 @ExceptionHandler 注释的方法受到保护?
【发布时间】:2019-10-09 22:25:26
【问题描述】:

虽然@ExceptionHandler 的官方文档中没有明确说明,但几乎在web 上的所有示例中,使用@ExceptionHandler 注解的方法都受到保护。有什么具体原因吗?

【问题讨论】:

  • 为什么任何代码都应该直接使用这样的类? Spring 负责注册异常处理程序。这就是所有要做的事情。
  • 我想知道在@ExceptionHandler注释出现之前是否需要扩展一个类
  • @LutzHorn 不应该但可能。那么我们可以说这更多的是为了强制更清洁的设计吗?

标签: java spring access-modifiers exceptionhandler


【解决方案1】:

如果我没记错的话,这是因为带有 @ExceptionHandler 注释的方法只对特定的控制器有效,而不是对整个应用程序全局有效,从而使它们受到保护。

【讨论】:

  • 可以相反吗?我的意思是,当在控制器级别使用该注释时,该方法应该是公共的。 @ControllerAdvice 实现几乎总是受到保护。
  • 话虽如此,即使不公开它们,我们也可以解决问题,我们所要做的就是让所有控制器扩展一个基本控制器类。
猜你喜欢
  • 2011-06-28
  • 2011-01-18
  • 2015-05-02
  • 2014-10-09
  • 2011-10-02
  • 2011-01-18
  • 1970-01-01
  • 2020-12-17
相关资源
最近更新 更多