繁体   English   中英

Spring Boot 2.xx - 在 @ConditionalOnProperty 中结合 2 个条件

[英]Spring Boot 2.x.x - Combine 2 conditions in @ConditionalOnProperty

我有以下界面:

@Primary
@ConditionalOnProperty(value = "ms.couchbase.enabled", havingValue = "true", matchIfMissing = true)
@ConditionalOnProperty(value = "iiams.switch.iiamsSingleProcessIdPer100", havingValue = "true", matchIfMissing = true)
public interface AsyncCommonRepository extends CouchbaseRepository<CouchbaseDocument, Long> { }

当然这不会编译。
我想要的只是以某种方式将这两个@ConditionalOnProperty结合起来。 我应该使用@ConditionalOnExpression吗?
提前致谢!

您可以使用AllNestedConditions组合两个或多个条件:

class AsyncCommonRepositoryCondition extends AllNestedConditions {

    AsyncCommonRepositoryCondition() {
        super(ConfigurationPhase.PARSE_CONFIGURATION);
    }

    @ConditionalOnProperty(value = "ms.couchbase.enabled", havingValue = "true", matchIfMissing = true)
    static class CouchbaseEnabled {

    }

    @ConditionalOnProperty(value = "iiams.switch.iiamsSingleProcessIdPer100", havingValue = "true", matchIfMissing = true)
    static class SingleProcessIdPer100 {

    }

}

然后可以在您的存储库上使用此条件:

@Primary
@Conditional(AsyncCommonRepositoryCondition.class)
public interface AsyncCommonRepository extends CouchbaseRepository<CouchbaseDocument, Long> { }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM