У меня 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}' == ''")
, но заполнитель свойства, похоже, заменяется чем-то другим, кроме пустой строки.
Итак, мой вопрос: как загрузить бин, только если свойство имеет значение false или не определено?