创建bean时,我需要检查YAML属性文件上是否满足两个条件。@ConditionalOnProperty注释仅支持一个属性,该怎么办?
@ConditionalOnProperty
因为从一开始@ConditionalOnProperty就可以检查多个属性。名称/值属性是一个数组。
@Configuration @ConditionalOnProperty({ "property1", "property2" }) protected static class MultiplePropertiesRequiredConfiguration { @Bean public String foo() { return "foo"; } }
对于带有AND检查的简单布尔属性,您不需要@ConditionalOnExpression。
@ConditionalOnExpression
使用@ConditionalOnExpression注释和SpEL表达式,如http://docs.spring.io/spring/docs/current/spring-framework-reference/html/expressions.html所述。
例:
@Controller @ConditionalOnExpression("${controller.enabled} and ${some.value} > 10") public class WebController {