Spring @Value löst den Wert aus der Eigenschaftsdatei nicht auf
Lesezeit: 3 Minuten
TS-
Ich hatte das schon einmal in einem anderen Projekt, ich mache gerade dasselbe, aber aus irgendeinem Grund funktioniert es nicht. Der Frühling @Value liest nicht aus der Eigenschaftsdatei, sondern nimmt den Wert wörtlich
AppConfig.java
@Component
public class AppConfig
{
@Value("${key.value1}")
private String value;
public String getValue()
{
return value;
}
}
Die Anwendung startet ganz gut, aber wenn ich es tue
appConfig.getValue()
es kehrt zurück
${key.value1}
Es wird nicht in den Wert in der Eigenschaftendatei aufgelöst.
Gedanken?
Dupliziertes stackoverflow.com/questions/11890544/… und stackoverflow.com/questions/5275724/…
– Pedjaradenkovic
10. April 2013 um 22:29 Uhr
Vielen Dank! Ich habe diesen Thread nicht gefunden, die meisten, die ich gefunden habe, beziehen sich auf den Wert NULL
– TS-
11. April 2013 um 12:55 Uhr
Sachchidanand Singh
Den Grund habe ich auch gefunden @value hat nicht funktioniert, @value erfordert PropertySourcesPlaceholderConfigurer anstelle einer PropertyPlaceholderConfigurer. Ich habe die gleichen Änderungen vorgenommen und es hat bei mir funktioniert, ich verwende die Version Spring 4.0.3. Ich habe dies mit dem folgenden Code in meiner Konfigurationsdatei konfiguriert –
@Bean
public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
return new PropertySourcesPlaceholderConfigurer();
}
@Florian Wicher – Vielleicht könnten Sie versuchen, die Spring Boot-Version auf 2.x zu aktualisieren, und Sie könnten dies vermeiden.
– Sachchidanand Singh
12. Dezember 2019 um 6:20 Uhr
In meinem Fall werden keine statischen Felder injiziert.
Musste das nur entfernen static Schlüsselwort und es funktioniert jetzt gut!
– takanuva15
20. Februar 2020 um 20:34 Uhr
Hat bei mir auch funktioniert. Es ist seltsam, weil ich statische Felder mit @Value in anderen Klassen habe, die gut funktionieren.
– Chris Nieve
27. August 2020 um 19:49 Uhr
für mich möchte ich statische felder verwenden, wie kann ich das bei statischen feldern erreichen
– Rookie007
26. Oktober 2021 um 13:14 Uhr
Wenn jemand wissen möchte, wie dies bei statischen Feldern erreicht werden kann, verwenden Sie eine nicht statische Setter-Methode und verwenden Sie @value zusätzlich zur Setter-Methode (Setter-Injektion) anstelle der Feldinjektion.
– Wikram
4. August um 14:08 Uhr
TS-
Das Problem ist auf ein Problem in meiner applicationContext.xml vs. spring-servlet.xml zurückzuführen – es war ein Scoping-Problem zwischen den Beans.
pedjaradenkovic hat mich freundlicherweise auf eine vorhandene Ressource hingewiesen: Spring @Value-Annotation in der @Controller-Klasse wertet den Wert in der Eigenschaftendatei nicht aus, und Spring 3.0.5 wertet die @Value-Annotation nicht aus Eigenschaften aus
In meinem Fall fehlten mir die geschweiften Klammern. ich hatte @Value("foo.bar") String value statt der richtigen Form @Value("${foo.bar}") String value
Dapper Dan
für Sprig-boot-Benutzer sowohl PropertyPlaceholderConfigurer als auch der neue PropertySourcesPlaceholderConfigurer, der in Spring 3.1 hinzugefügt wurde. Es ist also einfach, auf die Eigenschaftendatei zuzugreifen. einfach spritzen
Hinweis: Stellen Sie sicher, dass Ihr Eigentum nicht sein muss Static
@Value("${key.value1}")
private String value;
kraastad
Ich habe Spring Boot verwendet und für mich die Version von aktualisiert 1.4.0.RELEASE zu 1.5.6.RELEASE dieses Problem gelöst.
Ahmed Aziz
In meinem Fall hatte ich den lombok @AllArgsConstructor und der hat auch die Eigenschaft übernommen. Das Löschen dieser Anmerkung löste das Problem.
12167700cookie-checkSpring @Value löst den Wert aus der Eigenschaftsdatei nicht aufyes
Dupliziertes stackoverflow.com/questions/11890544/… und stackoverflow.com/questions/5275724/…
– Pedjaradenkovic
10. April 2013 um 22:29 Uhr
Vielen Dank! Ich habe diesen Thread nicht gefunden, die meisten, die ich gefunden habe, beziehen sich auf den Wert NULL
– TS-
11. April 2013 um 12:55 Uhr