2015-10-20 15 views
13

Ho un'applicazione di avvio Spring divisa in diversi moduli. Il modulo principale esegue l'applicazione e ha un file application.properties nella cartella delle risorse. Mi chiedo se posso aggiungere un altro file di proprietà in un sottomodulo per separare le proprietà che appartengono a quel modulo e come farlo funzionare (perché non lo è).Come aggiungere più file application.properties in spring-boot?

+main_module 
    +src 
    +main 
     +java 
     +my/package/Application.java 
     +resources/application.properties 
+support_module 
    +src 
    +main 
     +java 
     +resources/application.properties 

Quindi, questa è la situazione attuale. Chiaramente il file delle proprietà nel modulo support_module non viene letto causando un NoSuchBeanDefinitionException, mentre se inserisco il contenuto nell'altro file delle proprietà tutto funziona correttamente.

+0

Hai provato a utilizzare i moduli Maven introducendo un padre pom.xml? – Gangaraju

+0

Certo che ho un genitore pom –

risposta

14

Quello che stai cercando di fare non funzionerà quando si utilizza Maven o Gradle. Il motivo è che quando viene creato l'artefatto (probabilmente molto probabilmente dal momento che si utilizza Spring Boot), nella radice sarà presente un solo file application.properties.

vi consiglio di cambiare sia il nome del file delle proprietà del modulo di supporto e quindi si configura primavera di avvio per cercare quel file e (dare un'occhiata a this o this risposta per puntatori), o utilizzare una sorta di fusione compito per il vostro strumento di compilazione (qualcosa come this forse)

+0

Il primo suggerimento sembra interessante. Come posso istruire Spring Boot a cercare le proprietà nel modulo secondario? –

+0

@mat_boy Controlla la mia risposta aggiornata per favore – geoand

+0

@mat_boy Dovresti anche vedere [questo] (http://stackoverflow.com/a/30213550/2504224) SO thread – geoand

0

È inoltre possibile fare riferimento a una posizione esplicita utilizzando la proprietà ambiente spring.config.location (elenco separato da virgole di posizioni di directory, o percorsi di file)

$ java -jar myproject.jar --spring.config.location=classpath:/default.properties,classpath:/override.properties 

Per ulteriori informazioni click qui

Problemi correlati