Optional @PropertySource Lage

Ich bin mit Spring 3.2 in einer web-Anwendung, und ich möchte einen .properties - Datei in den Klassenpfad enthält die default-Werte. Der Benutzer sollte in der Lage sein, um JNDI verwenden Sie zum definieren einer Lage, wo ein anderer .properties gespeichert ist, die überschreibt die Standardwerte.

Folgende funktioniert, solange der Benutzer hat die configLocation als JNDI-Eigenschaft.

@Configuration
@PropertySource({ "classpath:default.properties", "file:${java:comp/env/configLocation}/override.properties" })
public class AppConfig
{
}

Jedoch die externen überschreibt sollte optional sein und so sollten die JNDI-Eigenschaft.

Derzeit bekomme ich eine exception (java.io.FileNotFoundException: comp\env\configLocation\app.properties (The system cannot find the path specified) wenn der JNDI-Eigenschaft fehlt.

Wie kann ich festlegen, optional .properties werden nur verwendet, wenn der JNDI-Eigenschaft (configLocation) eingestellt ist? Ist das überhaupt möglich mit @PropertySource oder gibt es eine andere Lösung?

InformationsquelleAutor Gerhard Schlager | 2013-07-01

Schreibe einen Kommentar