Мы построили Spring загрузочного стартера, который описывает его конфигурация в классе с аннотацией @ConfigurationProperties:Не удается проверить отсутствие имущества, если объявлен в @ConfigurationProperty
@ConfigurationProperties(name = "foo.bar")
public class FooConfiguration {
public String baz;
}
Вне стартера Я хочу, чтобы выполнить какое-либо действие в зависимости от являются ли свойство не набора с использованием @ConditionalOnProperty аннотации:
@Bean
@ConditionalOnProperty(name = "foo.bar.baz", matchIfMissing=true)
public FooReplacement moo() {
return new FooReplacement();
}
Однако это условие никогда не совпадает, если свойство foo.bar.baz описывается в классе Annot с помощью @ConditionProperties. Если он не описан в таком классе, аннотация @ConditionalOnProperty работает просто отлично.
Мы используем Spring бутса 1.4
Итак, это путь Spring загрузка должна работать или мы заметили ошибку?
Вы имели в виду '@ ConfigurationProperties', когда вы писали' @ ConditionProperties' –
я написал модульное тестирование, что я думаю, что упражнения ваш сценарий, но я не был в состоянии воспроизвести вашу неудачу. Я использую выпуск 1.4.1 SpringBoot, попробуйте обновить его в качестве потенциального решения. Я отправлю блок-тест, если вы этого захотите. –
@BobLukens да, единичный тест будет приветствоваться. :) и да, в абзаце ниже второй фрагмент кода я имел в виду ConfigurationProperties вместо ConditionProperties. ;) – roborob