PropertySource no está disponible durante la evaluación ConditionalOnExpression
Tengo esta siguiente clase de componente que me gustaría instanciar dependiendo de una propiedad;
@Component("componentA")
@PropertySource("classpath:components.properties")
@ConditionalOnExpression("'${components.enabled}'.contains('componentA')")
public class ComponentA implements ComponentIF {
...
El archivo components.properties tiene la siguiente propiedad;
components.enabled=componentA,componentB,componentD
El problema es ese@PropertySource("classpath:components.properties")
parece no estar disponible durante la evaluación de@ConditionalOnExpression("'${components.enabled}'.contains('componentA')")
.
Por otro lado, si pongo elcomponents.enabled=componentA,componentB,componentD
propiedad dentro de las botas de primaveraapplication.properties
archivo, la propiedad está disponible durante la evaluación ConditionalOnExpression y funciona como se esperaba.
Sin embargo, me gustaría usarcomponents.properties
para mantener las propiedades específicas de todos los componentes en el mismo lugar.
¿Alguna idea de si PropertySource no es efectivo durante ConditionalOnExpression?