2015-09-03 14 views
8

Dalla documentazione di primavera http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html#boot-features-external-config-yaml vedo che è possibile un file YAML esterno.Come specificare un'applicazione.yml esterna in primavera con i profili

Sono stato in grado di utilizzare una risorsa FileSystem PropertyConfig FileSystem da caricare in yaml, ma non ha rispettato il profilo attivo.

Ho visto per application.properties è possibile utilizzare @PropertySource, ma ciò non funziona per YAML in base ai documenti.

Quindi domanda di fondo: come specificare un file application.yml in un modo che attesti il ​​profilo in Spring4/spring boot.

Nota: Funziona in src/main/risorse/application.yml

+0

da solo mettendo un 'application- [profile] .yml' vicino a' application.yml'. Come spiegato nello stesso link a cui fai riferimento. Spring Boot lo caricherà automaticamente. –

+0

Che funziona per una risorsa di percorso nella classe utilizzando un file di proprietà standard. Il mio obiettivo è un ricorso esterno yaml (tutti i profili in un file) – redwhite

+0

Si prega di leggere i documenti invece di creare la propria interpretazione. Funziona anche per i file YAML. Accanto a questo funziona anche per i file nella stessa directory del tuo jar o di una directory di configurazione. Quindi leggi nuovamente quella sezione di configurazione ... Se vuoi specificare un file, avvia la tua applicazione con '--spring.config.location', che è spiegato un po 'più in basso in quella sezione (http://docs.spring.io/ spring-avvio/docs// riferimento/html/corrente di boot-funzioni-esterno-config.html # boot-funzioni-Application-proprietà-files esterni-config-). –

risposta

11

Al fine di specificare un profilo esterno consapevoli .yml depositare la SPRING_CONFIG_LOCATION e variabili di sistema SPRING_PROFILES_ACTIVE possono essere utilizzati.

JAVA_OPTS esempio

-Dspring.profiles.active=dev -Dspring.config.location=file:C:/application.yml 

Questo vi permetterà di avere fornire più profili all'interno di un file YML e lasciare che la primavera fare il sollevamento di carichi pesanti di valutare le proprietà corrette:

spring: 
    profiles: dev 
someprop: devprop 
--- 
spring: 
    profiles: test 
someprop: testprop 
+0

se aggiungi un po 'di profitto: $ {devprop} dove andrebbe questo file yml per recuperare il valore del segnaposto? – Jesse

+0

@Jesse Passerà alle variabili di ambiente da recuperare. – Jesse

Problemi correlati