Vår YAML-konfigurasjon

1. Oversikt

En av måtene å konfigurere Spring-applikasjoner på er å bruke YAML-konfigurasjonsfiler.

I denne raske artikkelen konfigurerer vi forskjellige profiler for en enkel Spring Boot-applikasjon ved hjelp av YAML.

2. Vår YAML-fil

Fjærprofiler hjelper Spring Applications til å definere forskjellige egenskaper for forskjellige miljøer.

Følgende er en enkel YAML-fil som inneholder to profiler. De tre bindestrekene som skiller de to profilene, indikerer starten på et nytt dokument, slik at alle profilene kan beskrives i samme YAML-fil.

Den relative stien til application.yml filen er /myApplication/src/main/resources/application.yml.

Vårapplikasjonen tar den første profilen som standardprofil med mindre annet er oppgitt i vårapplikasjonen.

vår: config: aktivere: på-profil: testnavn: test-YAML-miljø: testing aktivert: falske servere: - www.abc.test.com - www.xyz.test.com --- vår: config: aktivere: på -profil: produktnavn: prod-YAML-miljø: produksjon aktivert: sanne servere: - www.abc.com - www.xyz.com

3. Binding av YAML til en Config-klasse

For å laste et sett med relaterte egenskaper fra en eiendomsfil, oppretter vi en bønneklasse:

@Configuration @EnableConfigurationProperties @ConfigurationProperties offentlig klasse YAMLConfig {private navn på streng; privat streng miljø; privat boolsk aktivert; private List-servere = ny ArrayList (); // standard getters og setters}

Merknaden som brukes her er:

  • @Konfigurasjonmarkerer klassen som en kilde til bønnedefinisjoner
  • @ConfigurationProperties binder og validerer de eksterne konfigurasjonene til en konfigurasjonsklasse
  • @EnableConfigurationProperties denne merknaden brukes for å aktivere @ConfigurationProperties merkede bønner i vårapplikasjonen

4. Få tilgang til YAML-egenskapene

For å få tilgang til YAML-egenskapene lager vi et objekt av YAMLConfig klasse og få tilgang til egenskapene som bruker det objektet.

La oss stille inn egenskapsfilen vår.aktive.profiler miljøvariabel til prod. Hvis vi ikke definerer våren.profiler.aktiv, den vil som standard være den første profilegenskapen som er definert i YAML-filen.

Den relative banen for eiendomsfilen er /myApplication/src/main/resources/application.properties.

spring.profiles.active = prod

I dette eksemplet viser vi egenskapene ved hjelp av CommandLineRunner.

@SpringBootApplication offentlig klasse MyApplication implementerer CommandLineRunner {@Autowired private YAMLConfig myConfig; public static void main (String [] args) {SpringApplication app = new SpringApplication (MyApplication.class); app.run (); } public void run (String ... args) kaster Unntak {System.out.println ("ved hjelp av miljø:" + myConfig.getEnvironment ()); System.out.println ("navn:" + myConfig.getName ()); System.out.println ("aktivert:" + myConfig.isEnabled ()); System.out.println ("servere:" + myConfig.getServers ()); }}

Utgangen på kommandolinjen:

bruker miljø: produksjonsnavn: prod-YAML aktivert: sanne servere: [www.abc.com, www.xyz.com]

5. YAML Property Overriding

I Spring Boot kan YAML-filer overstyres av andre YAML-egenskapsfiler.

Før versjon 2.4.0 ble YAML-egenskaper overstyrt av eiendomsfiler på følgende steder, i rekkefølge med høyeste prioritet først:

  • Profilenes egenskaper plassert utenfor den pakket glasset
  • Profilenes egenskaper pakket inne i den pakket glasset
  • Påføringsegenskaper plassert utenfor den pakket glasset
  • Bruksegenskaper pakket inne i den pakket glasset

Fra og med Spring Boot 2.4, overstyrer ekstern fil alltid pakkede filer, uansett om den er profilspesifikk eller ikke.

6. Konklusjon

I denne raske artikkelen har vi sett hvordan du konfigurerer egenskaper i Spring Boot-applikasjoner ved hjelp av YAML. Vi har også sett eiendommens overordnede regler etterfulgt av Spring Boot for YAML-filer.

Koden for denne artikkelen er tilgjengelig på GitHub.


$config[zx-auto] not found$config[zx-overlay] not found