Sto utilizzando Spring 3.2 in un'applicazione Web e mi piacerebbe avere un file .properties
all'interno del classpath che contiene valori predefiniti. L'utente dovrebbe essere in grado di utilizzare JNDI per definire una posizione in cui è memorizzato un altro .properties
che sostituisce i valori predefiniti.Facoltativo @PropertySource posizione
Quanto segue funziona fintanto che l'utente ha impostato configLocation
come proprietà JNDI.
@Configuration
@PropertySource({ "classpath:default.properties", "file:${java:comp/env/configLocation}/override.properties" })
public class AppConfig
{
}
Tuttavia, le sostituzioni esterne devono essere facoltative e, quindi, deve essere la proprietà JNDI.
Attualmente ottengo un'eccezione (java.io.FileNotFoundException: comp\env\configLocation\app.properties (The system cannot find the path specified)
quando la proprietà JNDI manca.
Come posso definire opzionale .properties
che vengono utilizzati solo quando la proprietà JNDI (configLocation
) è impostato? Questo è anche possibile con @PropertySource
o è c'è un'altra soluzione
Grazie. L'ho anche risolto usando un 'ApplicationContextInitializer'. Sembra che sia l'unico modo fattibile per farlo. –