小编sta*_*r67的帖子

@ConditionalOnProperty 默认 bean 无法正常工作

我有 2 颗豆子:

@Component("CryptoClient")
@ConditionalOnProperty(name = "enabled-client", havingValue = "AfsClient")
public class AfsClient implements CryptoClient {
Run Code Online (Sandbox Code Playgroud)

@Component("CryptoClient")
@ConditionalOnProperty(name = "enabled-client", havingValue = "JinnClient")
public class JinnClient implements CryptoClient {
Run Code Online (Sandbox Code Playgroud)

我更改属性值:

enabled-client: AfsClient或者enabled-client: JinnClient并使用这个bean。但现在我添加默认 bean(如果enabled-client属性不存在):

    @Bean("CryptoClient")
    @ConditionalOnProperty(name = "enabled-client", matchIfMissing = true)
    public CryptoClient defaultClient(EDSService edsService) {
        return new AfsClient(edsService);
    }
Run Code Online (Sandbox Code Playgroud)

如果enabled-client属性不存在 - 它工作正常。但即使存在财产,它也能发挥作用。无论如何调用默认 bean。

java spring spring-boot

3
推荐指数
1
解决办法
5133
查看次数

标签 统计

java ×1

spring ×1

spring-boot ×1