У меня есть свойство, определенное внутри файла свойств: property=true
Затем у меня есть SomeClass.java
класс, который должен создать компонент конфигурации свойств только если для свойства property
установлено значение true.
Это мой SomeClass
класс:
public class SomeClass {
//this is the proerty which I set to true or false
@Value("${property}")
private String property;
//this is the bean which needs to be created conditionally based on the property but at the moment it does not get created
@Bean
@ConditionalOnProperty(name="${property}", havingValue="true")
public PropertyConfiguration propertyConfig() {
// doesnt print anything because the bean does not get created
System.out.print(property);
}
}
Если я добавлю matchIfMissing = true
внутри @ConditionalOnProperty
, просто для экспериментаи чтобы увидеть, каково значение property
, создается бин , и я вижу, что значение property
равно true
.
Если я удаляю matchIfMissing = true
, оставьте условие как @ConditionalOnProperty(name="${property}", havingValue="true")
и измените свойство property=true
с true
на false
, боб никогда не создается (ни для true
, ни для false
).
Чтоя должен сделать, что бин создается условно, на основе свойства?