我有一个 bean,只有在属性为 false 或未定义时才应加载。如果我用以下方式注释它:
@ConditionalOnProperty(prefix = "myFeature1", name = "enable", havingValue = "false")
该属性myFeature1.enable
必须明确设置为false
. 此属性在带注释的类中定义为具有 false 默认值的布尔值@ConfigurationProperties
,但此注释似乎在应用程序启动时处理得太晚,因此必须将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}' == ''")
但是属性占位符似乎被空字符串以外的东西替换了。
所以我的问题是:仅当属性为假或未定义时如何加载 bean?