ho più file di proprietà che voglio caricare da classpath. C'è un valore predefinito sotto /src/main/resources
che fa parte di myapp.jar
. Il mio springcontext
si aspetta che i file si trovino sul classpath. cioèfile di configurazione esterna primavera di avvio e molteplici
<util:properties id="Job1Props"
location="classpath:job1.properties"></util:properties>
<util:properties id="Job2Props"
location="classpath:job2.properties"></util:properties>
ho bisogno anche la possibilità di ignorare queste proprietà con un set esterno. Ho una cartella di configurazione esterna in cwd
. Come per la primavera, la cartella di configurazione del documento di avvio dovrebbe trovarsi su classpath. Ma non è chiaro da doc se solo sostituirà lo applicaiton.properties
da lì o tutte le proprietà in config.
Al momento del test, viene prelevato solo il numero application.properties
e il resto delle proprietà viene prelevato da /src/main/resources
. Ho provato a fornirli come elenco separato da virgole a spring.config.location
ma il set predefinito non è ancora stato sostituito.
Come faccio mulitiple file di configurazione esterni sovrascrivono quelli di default?
Come soluzione che attualmente utilizzati app.config.location
(app proprietà specifica) che fornisco attraverso la linea di comando. cioè
java -jar myapp.jar app.config.location=file:./config
e ho cambiato il mio applicationcontext
a
<util:properties id="Job2Props"
location="{app.config.location}/job2.properties"></util:properties>
Ed è così che faccio separazione tra file e il percorso di classe durante il caricamento delle applicazioni.
Modifiche:
//psuedo code
if (StringUtils.isBlank(app.config.location)) {
System.setProperty(APP_CONFIG_LOCATION, "classpath:");
}
Mi piacerebbe davvero di non utilizzare la soluzione precedente e hanno primavera override di tutti i file di configurazione esterni nel classpath come avviene per il file application.properties
.
Il 'application.properties' sarà sempre caricato, con' spring.config.location' è possibile aggiungere ulteriori posizioni di configurazione che vengono controllati per i file (cioè quando termina con un '/'), tuttavia se si inserisce una lista separata da virgola in quella che punta ai file che verranno caricati. Questo è anche spiegato nella Guida di riferimento del boot di primavera [qui] (http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html#boot-features- external-config-application-property-files) –