Ich habe eine Eigenschaftendatei, die ich in Systemeigenschaften laden möchte, damit ich über System.getProperty("myProp")
darauf zugreifen kann. Momentan versuche ich den Spring <context:propert-placeholder/>
so zu verwenden:
Wenn ich jedoch versuche, über System.getProperty("myProp")
auf meine Eigenschaften zuzugreifen, bekomme ich null
. Meine Eigenschaftendatei sieht folgendermaßen aus:
Wie kann ich das erreichen? Ich bin mir ziemlich sicher, dass ich ein Laufzeitargument festlegen könnte, aber ich möchte das vermeiden.
Danke!
Während ich den Geist von Bozhos Antwort abonniere , ich hatte kürzlich auch eine Situation, in der ich Systemeigenschaften von Spring einstellen musste. Hier ist die Klasse, die ich mir ausgedacht habe:
Java-Code:
%Vor%Spring-Konfiguration:
%Vor%Der Punkt ist, dies anders herum zu tun - d. h. Systemeigenschaften im Frühling zu verwenden, anstatt Federeigenschaften im System.
Mit PropertyPlaceholderConfigurer
erhalten Sie Ihre Eigenschaften + die Systemeigenschaften über die ${property.key}
-Syntax zugänglich. Im Frühjahr 3.0 können Sie diese mit der @Value
Annotation injizieren.
Die Idee besteht nicht darin, sich auf Aufrufe von System.getProperty(..)
zu verlassen, sondern stattdessen Ihre Eigenschaftswerte zu injizieren. Also:
statt
%Vor% Stellen Sie sich vor, Sie möchten Ihre Klasse testen - Sie müssten das System
-Objekt mit Eigenschaften auffüllen. Mit dem Spring-Way müssten Sie nur einige Felder des Objekts setzen.
Tags und Links java spring spring-mvc