【发布时间】:2016-11-25 12:36:36
【问题描述】:
我想让我的 spring-boot 配置类 A 依赖于另一个配置类 B,即只有在评估 B 配置时才会评估 A 配置。
在实际情况下,我有数百个 Ai 配置,只有一个 B,我想实现一种方法,通过在测试期间仅排除 B 来排除所有 Ai 配置。
我尝试了以下方法:
@Configuration
@ConditionalOnBean(type = "org.my.B")
public class A1AutoConfiguration {
// ...
}
其中B 是一个无条件 配置类。
但是当我运行mvn spring-boot:run -Ddebug=true 时,我看到A 从未评估,因为缺少B。虽然在 B 中创建的 bean 在应用程序上下文中,但 B 本身却不在。
虽然我可以使 Ai 配置类依赖于 在内部创建的 bean B,但我不太喜欢这种解决方案。
是否有一种更简洁(且有效)的方式来实现这种依赖机制?
【问题讨论】:
-
我不明白这里有什么问题,你让所有 Ai 都依赖于 B 并且没有 B,因为你明确排除了 B,所以它们没有被加载。这不是预期的行为吗?你想做什么?
-
不,他们被排除在外总是,不仅仅是当我禁用
B时。
标签: spring-boot