Feder - lese-Eigenschaft-Wert aus properties-Datei in statische Feld der Klasse

Habe ich eine utility-Klasse, wo ich eine Methode, die erfordert Benutzernamen und Kennwort zum verbinden mit anderen url. Ich muss immer Benutzernamen in den Eigenschaften der Datei, so dass ich jederzeit auch wieder ändern. Aber wie verwende ich es in der statischen Methode (als utility-Klasse) , Problem ist er zeigt null .(d.h. es ist nicht in der Lage zu Lesen von properties-Datei).

Aber wenn ich ckecked, dass die Werte in einigen anderen controller sind Sie immer da.
Also meine Frage ist, wie lese-Eigenschaft-Wert in statischen Feld

<bean
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
        <list>
            <value>classpath*:/myservice_detaults.properties</value>
            <value>classpath*:/log4j.properties</value>
        </list>
    </property>
</bean>

//in Utitlity-Klasse code

  @Value("${app.username}")
      static String userName;

public static connectToUrl(){
  //use userName
 //userName showing null
}
  • Wie ist Ihre utility-Klasse geladen/gespritzt ?
  • Meine utility-Klasse normal-Klasse keine spring Klasse und dem aufrufen connectToUrl als normaler statischer aufrufen
  • Wenn Sie Ihre utility-Klasse nicht geladen ist, durch die Feder Kontext, Sie können nicht Spritzen Parameter. Jedoch können Sie immer noch den Vorschlag von @AmitChotaliya. Eine gute Praxis mit Frühling ist die Verwendung von singleton-beans geladen spring-Kontext anstelle von statischen Methoden in utility-Klassen.
  • danke, ich denke, Lösung von AmitChotaliya sollte mit meinem Problem.Krank versuchen. Aber kann man etwas erklären, über Ihre point >> "Eine gute Praxis mit Frühling ist die Verwendung von singleton-beans geladen spring-Kontext anstelle von statischen Methoden in utility-Klassen.".. jeder link für mehr info
  • Es gibt viele Gründe für diese, aber zumindest würden Sie Ihr @Value("${app.username}") - Eigenschaft ordnungsgemäß initialisiert, ohne irgendetwas besonderes. Wenn Sie möchten, dass einige links, die 2. Antwort auf diese Frage kann Ihnen einige weitere "Argumente" stackoverflow.com/questions/7270681/.... Base auf meinen eigenen Erfahrungen, ich verwende statische Methoden auf utility-Klasse nur, wenn ich nicht die Notwendigkeit, Initialisierung zu verwenden (das ist nicht Ihr Fall). Ansonsten, ich benutze spring beans.
InformationsquelleAutor user3608352 | 2014-07-09
Schreibe einen Kommentar