PropertySource não disponível durante a avaliação ConditionalOnExpression
Eu tenho essa classe de componente a seguir que eu gostaria de instanciar, dependendo de uma propriedade;
@Component("componentA")
@PropertySource("classpath:components.properties")
@ConditionalOnExpression("'${components.enabled}'.contains('componentA')")
public class ComponentA implements ComponentIF {
...
O arquivo components.properties possui a seguinte propriedade;
components.enabled=componentA,componentB,componentD
O problema é que@PropertySource("classpath:components.properties")
parece não estar disponível durante a avaliação de@ConditionalOnExpression("'${components.enabled}'.contains('componentA')")
.
Por outro lado, se eu colocar ocomponents.enabled=componentA,componentB,componentD
propriedade dentro da molaapplication.properties
, a propriedade fica disponível durante a avaliação ConditionalOnExpression e está funcionando conforme o esperado.
No entanto, eu gostaria de usarcomponents.properties
para manter todas as propriedades específicas do componente no mesmo local.
Alguma idéia de se PropertySource não é eficaz durante ConditionalOnExpression?