PropertySource nicht verfügbar während der Auswertung von ConditionalOnExpression

Ich habe die folgende Komponentenklasse, die ich abhängig von einer Eigenschaft instanziieren möchte:

@Component("componentA")
@PropertySource("classpath:components.properties")
@ConditionalOnExpression("'${components.enabled}'.contains('componentA')")
public class ComponentA implements ComponentIF {
...

ie Datei @ components.properties hat die folgende Eigenschaft:

components.enabled=componentA,componentB,componentD

Das Problem ist, dass@PropertySource("classpath:components.properties") scheint bei der Auswertung von @ nicht verfügbar zu se@ConditionalOnExpression("'${components.enabled}'.contains('componentA')").

uf der anderen Seite, wenn ich dascomponents.enabled=componentA,componentB,componentD Eigenschaft innerhalb des Spring-Boot'sapplication.properties -Datei, die Eigenschaft wird während der Auswertung von ConditionalOnExpression verfügbar und funktioniert wie erwartet.

Allerdings würde ich gerne @ verwendcomponents.properties, um alle komponentenspezifischen Eigenschaften an derselben Stelle zu speichern.

Haben Sie eine Idee, ob PropertySource während ConditionalOnExpression nicht wirksam ist?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage