Spring @ Value gibt den Wert aus der Eigenschaftendatei nicht auf
Hatte, habe ich diese Arbeit in einem anderen Projekt vor, ich bin nur wieder das gleiche zu tun, aber aus irgendeinem Grund funktioniert es nicht. Der Frühling @Value
ist nicht das Lesen von property-Datei, aber stattdessen ist es der Wert buchstäblich
AppConfig.java
@Component
public class AppConfig
{
@Value("${key.value1}")
private String value;
public String getValue()
{
return value;
}
}
applicationContext.xml:
<context:component-scan
base-package="com.test.config" />
<context:annotation-config />
<bean id="appConfigProperties"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="classpath:appconfig.properties" />
</bean>
appconfig.Eigenschaften
key.value1=test value 1
In meine controller, wo ich habe:
@Autowired
private AppConfig appConfig;
Startet die Anwendung ganz gut, aber wenn ich
appConfig.getValue()
gibt es
${key.value1}
Er nicht auflösen, bis der Wert innerhalb der properties-Datei.
Gedanken?
InformationsquelleAutor der Frage TS- | 2013-04-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich auch den Grund gefunden
@value
war nicht die Arbeit ist,@value
erfordertPropertySourcesPlaceholderConfigurer
statt einerPropertyPlaceholderConfigurer
. ich habe die gleichen Veränderungen, und es funktionierte für mich, ich bin mit spring 4.0.3 release.Ich in dieser Konfiguration mit untenstehenden code in meine Konfiguration Datei -
InformationsquelleAutor der Antwort Sachchidanand Singh
Problem ist, aufgrund von problem in meinem applicationContext.xml vs spring-servlet.xml - es wurde ein scoping-Problem zwischen den Bohnen.
pedjaradenkovic freundlicherweise wies mich auf eine vorhandene Ressource:
Frühjahr @Value-annotation @Controller-Klasse nicht bewerten, Wert in Datei-Eigenschaften
und Spring 3.0.5 nicht bewerten, @Value-annotation von Eigenschaften
InformationsquelleAutor der Antwort TS-
In meinem Fall statischer Felder nicht gespritzt werden.
InformationsquelleAutor der Antwort User007
War ich mit spring-boot und für mich ein Upgrade der version von
1.4.0.RELEASE
zu1.5.6.RELEASE
dieses Problem gelöst.InformationsquelleAutor der Antwort craastad
Gelesen zu haben von pedjaradenkovic Kommentar.
Weiter zu den link, die er bietet, der Grund, warum dies nicht funktioniert ist, dass
@Value
Verarbeitung erfordert einPropertySourcesPlaceholderConfigurer
statt einerPropertyPlaceholderConfigurer
.InformationsquelleAutor der Antwort Muel
In meinem Fall war ich fehlen die geschweiften Klammern. Ich hatte
@Value("foo.bar") String value
statt der korrekten form@Value("${foo.bar}") String value
InformationsquelleAutor der Antwort Naruto Sempai
für Zweig-boot-Benutzer sowohl PropertyPlaceholderConfigurer und die neue PropertySourcesPlaceholderConfigurer Hinzugefügt, im Frühjahr 3.1. so ist es unkompliziert Zugriff auf properties-Datei. nur injizieren
InformationsquelleAutor der Antwort Dan