2017-09-10 3 views
3

Ich kann den Wert von application.properties in meinem Projekt in Klassen nicht lesen, die als Bean aus einem anderen Projekt injiziert werden. Mein Projekt verwendet ein anderes Projekt, das über Klassen verfügt, die die Konfiguration aus application.properties lesen müssen. Mine ist ein Maven-Projekt und eine Spring-Boot-Anwendung mit application.properties im Ordner src/main/resources, in der die Eigenschaften definiert sind. Was fehlt mir, dass es Dateiwerte nicht lesen kann? Oder gibt es einen anderen Mechanismus ist für die Einstellung dieser Eigenschaften für die Klassen geladen über Component-ScanKann application.properties in Spring-Startanwendung nicht lesen

Below Codezeile funktioniert gut, es ist in der Lage Wert aus den application.properties zu lesen: @PostConstruct void init() throws ClassNotFoundException, IOException { System.out.println (context.getEnvironment(). GetProperty ("env.host", "Standardwert")); }

Jetzt gibt es ein anderes Projekt, das ich in meinem verwende. Wenn die Klassen laden diese Bohnen als Abhängigkeit einer anderen Klasse initialisiert werden immer, auch versucht, denselben Wert zu lesen in Konstanten als

static final String HOST_PROPERTY = "${env.host}"; 

Es dieser Wert Datei wird nicht von applictaion.properties zu Wert initialisiert zu werden

+0

Vielleicht können Sie einige Stück Code hinzufügen, die Sie verwenden autowire? – vahdet

+0

Ich habe meine Frage aktualisiert, lassen Sie mich wissen, wenn mehr Informationen benötigt werden – user1575601

+0

Bitte versuchen, '@Value (" $ {env.host} ") private String HOST_PROPERTY;' Mai '' static' gibt Ihnen Ärger. –

Antwort

1

Wenn Sie die Werte für application.properties abrufen möchten, müssen Sie zwei Optionen angeben. 1) können Sie Umwelt-Klasse und verwenden seine getProperty() -Methode als

@Autowired 
Environment env; 
env.getProperty("${env.host}"); 

2) @Value Anmerkung

@Value("${env.host}") 
    String HOST_PROPERTY; 
Verwandte Themen