【发布时间】:2021-09-08 00:56:31
【问题描述】:
我有两个@ControllerAdvice 课程。一个在应用程序级别,另一个在依赖项中。 @ControllerAdvice 都有 @Order(Ordered.HIGHEST_PRECEDENCE) 注释。 将(首先)拾取哪个 bean 进行创建?
应用程序内的控制器建议:
package com.package.one.errors
@ControllerAdvice
@Order(Ordered.HIGHEST_PRECEDENCE)
public class ControllerAdvice1 {}
来自依赖的控制器建议:
package com.package.two.errors
@ControllerAdvice
@Order(Ordered.HIGHEST_PRECEDENCE)
public class ControllerAdvice2 {}
当我运行 Spring Boot 应用程序时,正在使用 ControllerAdvice1。我怀疑这与扫描时首先遇到的 bean 有关,因为@SpringBootApplication 的类与ControllerAdvice1 在同一个包内。我想知道 Spring 如何解决这个问题的规则。
【问题讨论】: