Spring Boot提供
AnyNestedCondition了一个已创建的条件,该条件将在任何嵌套条件匹配时匹配。当所有嵌套条件或没有嵌套条件分别匹配时,它还提供
AllNestedConditions和
NoneNestedConditions进行匹配。
对于您要匹配
value1或的值的特定情况,
value2您可以创建
AnyNestedCondition如下所示的代码:
class ConfigNameCondition extends AnyNestedCondition { public ConfigNameCondition() { super(ConfigurationPhase.PARSE_CONFIGURATION); } @ConditionalOnProperty(name = "test.configname", value = "value1") static class Value1Condition { } @ConditionalOnProperty(name = "test.configname", value = "value2") static class Value2Condition { }}然后将其与一起使用
@Conditional,例如:
@Bean@Conditional(ConfigNameCondition.class)public SomeBean someBean() { return new SomeBean();}如嵌套条件注释的javadoc中所示(链接到上面),嵌套条件可以是任何类型。在这种特殊情况下,它们不必都具有相同的类型。



