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?
Ich bin mit XML-Konfiguration Diese Saite genau funktioniert das gleiche: –
Aber Sie beziehen sich andere Immobilien-Datei? "properties-ref =" dbProperties "location =" Klassenpfad: logmessages.properties " –
Ich habe 2 Eigenschaftsplatzhalter. Bitte lesen Sie die Frage, bevor Sie offensichtlich und falsch antworten –