2017-01-27 1 views
0

ich einen XML konfigurierbar Frühling Zusammenhang mit den folgenden Eigenschafts Platzhalter habe:Frühling Eigenschaft Initialisierung

<context:property-placeholder 
     properties-ref="dbProperties" location="classpath:logmessages.properties" order="2"/> 

<context:property-placeholder location="classpath:application.properties" order="1"/> 

DB Eigenschaften Konfigurations-Bean ist wie folgt:

<bean id="dbProperties" 
    class="com.example.DatabasePropertiesLoader"> 
    <property name="path" value="${db.path}"/> 
</bean> 

Wie aus dem Namen kommt, diese Bohne lädt einige Eigenschaften aus der Datenbank, z. B. Endpunkte und Anmeldeinformationen für andere Dienste. Um jedoch die Datenbank zugreifen, die diese Eigenschaften hält es auch Anmeldeinformationen benötigt, die in application.properties gehalten werden:

public class DatabasePropertiesLoader extends AbstractFactoryBean<Properties> { 

    private String path; 

    @Override 
    protected Properties createInstance() throws Exception { 
     // logic loading properties 
    } 

    @Override 
    public Class<Properties> getObjectType() { 
     return Properties.class; 
    } 

}

Path-Eigenschaft in application.properties Datei gehalten:

db.path=localhost:7777 

Wie Sie sehen, benötigt diese Bean die Eigenschaft "Pfad", die zum Erstellen injiziert werden soll.

Dies ist jedoch nicht möglich, da der eingegebene Wert null ist. Ich denke, dass Spring nur über die Datei application.properties und nicht über ihren Inhalt weiß. Gibt es eine Möglichkeit, dies zu lösen?

Antwort

0

Sie müssen Feder mitteilen, um die Eigenschaften wie unten zu verwenden.

@Value("${db.path}") 
private String path; 
+0

Ich bin mit XML-Konfiguration Diese Saite genau funktioniert das gleiche:

+0

Aber Sie beziehen sich andere Immobilien-Datei? "properties-ref =" dbProperties "location =" Klassenpfad: logmessages.properties " –

+0

Ich habe 2 Eigenschaftsplatzhalter. Bitte lesen Sie die Frage, bevor Sie offensichtlich und falsch antworten –

Verwandte Themen