File application.properties specifico per l’ambiente nell’applicazione Spring Boot

Nella mia applicazione Spring Boot, voglio creare un file delle proprietà specifico per l’ambiente. Il tipo di imballaggio della mia applicazione in guerra e lo sto eseguendo in tomcat incorporato. Io uso le m ed eseguo il main dalle stesse maglie.

  1. Posso avere un file di proprietà specifico per l’ambiente come l’applicazione – $ {env-value} .properties?

Nel caso precedente, env-value avrà valori come local / devl / test / prod

  1. Dove impostare il file env-value? Per locale, posso impostarlo come argomento jvm tramite le m.a.

  2. Chi legge le proprietà application.properties in Spring Boot.

  3. Come caricare il file delle proprietà specifiche dell’ambiente? Ad esempio, se imposto il database uid, pwd, schema ecc in un file di proprietà specifico dell’ambiente, in tal caso l’origine dati sarà in grado di comprendere le proprietà al suo interno?

  4. Posso usare application.properties e il file application-local.properties allo stesso tempo?

Spring Boot ha già il supporto per le proprietà basate sul profilo .

È sufficiente aggiungere un file application-[profile].properties e specificare i profili da utilizzare utilizzando la proprietà spring.profiles.active .

 -Dspring.profiles.active=local 

Questo caricherà application.properties e application-local.properties con le ultime proprietà di override dal primo.

Si, puoi. Poiché stai utilizzando la molla, controlla l’annotazione su @PropertySource.

Aggiungi la tua configurazione con

 @PropertySource("application-${spring.profiles.active}.properties") 

Puoi chiamarlo come preferisci e aggiungere inn multiple file di proprietà, se lo desideri. Può essere utile se si dispone di più set e / o valori predefiniti che appartengono a tutti gli ambienti (può essere scritto anche con @PropertySource {…, …, …}).

 @PropertySources( @PropertySource("application-${spring.profiles.active}.properties"), @PropertySource("my-special-${spring.profiles.active}.properties"), @PropertySource("overridden.properties")) 

Quindi è ansible avviare l’applicazione con l’ambiente

 -Dspring.active.profiles=test 

In questo esempio, il nome verrà sostituito con le proprietà del test dell’applicazione e così via.

possiamo fare così:

in application.yml :

 spring: profiles: active: test //modify here to switch between environments include: application-${spring.profiles.active}.yml 

in application-test.yml :

 server: port: 5000 

e in application-local.yml :

 server: address: 0.0.0.0 port: 8080 

quindi l’avvio di spring avvierà la nostra app come desideriamo.