gpt4 book ai didi

java - 如何仅在属性为 false 或未定义时加载 bean?

转载 作者:行者123 更新时间:2023-12-02 10:13:08 24 4
gpt4 key购买 nike

我有一个 bean,仅当属性为 false 或未定义时才应加载。如果我用以下注释:

@ConditionalOnProperty(prefix = "myFeature1", name = "enable", havingValue = "false")

属性myFeature1.enable必须显式设置为false。此属性在 @ConfigurationProperties 中定义为具有 false 默认值的 boolean 值。带注释的类,但此注释似乎在应用程序启动时处理得太晚,因此 myFeature1.enable 属性必须用作 Environment 中的字符串。 .

我尝试添加注释:

@ConditionalOnProperty(prefix = "dlcm.module.auth", name = "enable", matchIfMissing = true)

但是@ConditionalOnProperty不是可重复的注释。

我也尝试过使用@ConditionalOnExpression

@ConditionalOnExpression("'${dlcm.module.auth.enable}' == 'false' or '${dlcm.module.auth.enable}' == ''")

但是属性占位符似乎被空字符串以外的其他内容替换。

所以我的问题是:如何仅在属性为 false 或未定义时加载 bean?

最佳答案

解决方案是使用 @ConditionalOnExpression属性占位符中带有默认值的注释:

@ConditionalOnExpression("'${dlcm.module.auth.enable:false}' == 'false'")

关于java - 如何仅在属性为 false 或未定义时加载 bean?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54854620/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com