簡體   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