Java Spring Boot 2:两个@ExceptionHandler方法用于不同和不相关类中的相同异常类型
我有A类和B类。它们都用Java Spring Boot 2:两个@ExceptionHandler方法用于不同和不相关类中的相同异常类型,java,spring,spring-boot,spring-mvc,exception,Java,Spring,Spring Boot,Spring Mvc,Exception,我有A类和B类。它们都用@RestControllerAdvice注释。另外,两个类都有一个用@ExceptionHandler(SomeException.class)注释的方法(注意,两个异常处理程序用于相同的异常类型)。类A和类B不在同一层次结构中 我这样做的原因是我在类a上没有控件,因为它在外部库中,我需要重写类a的ExceptionHandler的行为 在调试期间,我看到两个异常处理程序都在Spring异常处理程序缓存中注册,但是异常解析器总是选择类B的方法,而忽略类A(带有外部依赖项
@RestControllerAdvice
注释。另外,两个类都有一个用@ExceptionHandler(SomeException.class)
注释的方法(注意,两个异常处理程序用于相同的异常类型)。类A和类B不在同一层次结构中
我这样做的原因是我在类a上没有控件,因为它在外部库中,我需要重写类a的ExceptionHandler的行为
在调试期间,我看到两个异常处理程序都在Spring异常处理程序缓存中注册,但是异常解析器总是选择类B的方法,而忽略类A(带有外部依赖项)。这是我需要的,但是:
我认为spring会覆盖其中任何一个是的,但我需要了解引擎盖下发生了什么,确定哪一个覆盖另一个的逻辑是什么,以确保有一天顺序不会改变异常处理程序只应在特定控制器出现错误时使用。它不应该用作一般异常处理程序(只有当
@ExceptionHandler
位于@ControllerAdvice
注释类中时才是这种情况)。2.不,这是不可能的,因为它的作用域是控制器。我的类和库附带的类都有@RestControllerAdvice注释。它们不绑定到任何特定控制器