【发布时间】:2019-02-24 17:35:55
【问题描述】:
我有一个 bean,只有当属性为 false 或未定义时才应该加载。如果我注释它:
@ConditionalOnProperty(prefix = "myFeature1", name = "enable", havingValue = "false")
属性myFeature1.enable 必须明确设置为false。此属性在 @ConfigurationProperties 带注释的类中定义为布尔值,默认值为 false,但此注释似乎在应用程序启动时处理得太晚,因此必须将 myFeature1.enable 属性用作来自 @987654322 的字符串@。
我尝试添加注释:
@ConditionalOnProperty(prefix = "dlcm.module.auth", name = "enable", matchIfMissing = true)
但@ConditionalOnProperty 不是可重复的注解。
我也尝试过使用@ConditionalOnExpression
@ConditionalOnExpression("'${dlcm.module.auth.enable}' == 'false' or '${dlcm.module.auth.enable}' == ''")
但属性占位符似乎被空字符串以外的东西替换。
所以我的问题是:如何仅在属性为 false 或未定义时才加载 bean?
【问题讨论】:
标签: java spring spring-boot spring-bean spring-properties