Spring @是否有条件检测两个同名类而不加载一个?

Spring @是否有条件检测两个同名类而不加载一个?,spring,spring-boot,Spring,Spring Boot,我有一个图书馆和一个应用程序。该库旨在包含整个团队中可重用的@RestControllers。我们在图书馆里有一个FooController,它可以满足我们90%的使用。尽管有时需要一个定制的FooController。我想向我们的库中添加一个@Condition(FooControllerConditional.class),并用这个条件注释FooController。如果应用程序中加载了FooController,我希望该条件能够阻止库的FooController加载。FooControll

我有一个图书馆和一个应用程序。该库旨在包含整个团队中可重用的@RestControllers。我们在图书馆里有一个FooController,它可以满足我们90%的使用。尽管有时需要一个定制的FooController。我想向我们的库中添加一个@Condition(FooControllerConditional.class),并用这个条件注释FooController。如果应用程序中加载了FooController,我希望该条件能够阻止库的FooController加载。FooController也可能位于库和应用程序中的不同包中,这使事情变得更困难,因为我无法使用Class.forName


有什么建议吗?(我想这样做,而不是在组件扫描中使用排除过滤器,因为这些过滤器有点笨拙,而且更自动化。)

似乎是可能的。您有什么问题?到目前为止,我无法确定如何使用matches接口来确定是否有两个简单名称为“FooController”的类<代码>布尔匹配(ConditionContext上下文,AnnotatedTypeMetadata元数据)。如果不使用Java代理,似乎也不可能获得所有已加载类的列表。为什么不使用
@Profile
注释?为什么不使用控制器建议?@aliakbarazizkhani如何使用ControllerAdvice来实现这一点?