Spring YAML-konfiguration

1. Oversigt

En af måderne til konfiguration af Spring-applikationer er at bruge YAML-konfigurationsfiler.

I denne hurtige artikel konfigurerer vi forskellige profiler til en simpel Spring Boot-applikation ved hjælp af YAML.

2. Spring YAML-fil

Fjederprofiler hjælper med at aktivere forårsprogrammer til at definere forskellige egenskaber til forskellige miljøer.

Følgende er en simpel YAML-fil, der indeholder to profiler. De tre bindestreger, der adskiller de to profiler, indikerer starten på et nyt dokument, så alle profilerne kan beskrives i den samme YAML-fil.

Den relative sti til ansøgning.yml filen er /myApplication/src/main/resources/application.yml.

Spring-applikationen tager den første profil som standardprofil, medmindre andet er angivet i Spring-applikationen.

spring: config: aktivere: on-profile: test navn: test-YAML miljø: test aktiveret: falske servere: - www.abc.test.com - www.xyz.test.com --- spring: config: aktivere: til -profil: prod navn: prod-YAML miljø: produktion aktiveret: ægte servere: - www.abc.com - www.xyz.com

3. Binding af YAML til en Config-klasse

For at indlæse et sæt relaterede egenskaber fra en egenskabsfil opretter vi en bønneklasse:

@Configuration @EnableConfigurationProperties @ConfigurationProperties offentlig klasse YAMLConfig {privat strengnavn; private String miljø; privat boolsk aktiveret private List-servere = ny ArrayList (); // standard getters og setter}

Annotationen, der bruges her, er:

  • @Konfigurationmarkerer klassen som en kilde til bønnedefinitioner
  • @ConfigurationProperties binder og validerer de eksterne konfigurationer til en konfigurationsklasse
  • @EnableConfigurationProperties denne kommentar bruges til at aktivere @ConfigurationProperties bemærkede bønner i foråret ansøgning

4. Adgang til YAML-egenskaberne

For at få adgang til YAML-egenskaberne opretter vi et objekt af YAMLConfig klasse og få adgang til egenskaberne ved hjælp af det pågældende objekt.

Lad os indstille filen i egenskabsfilen spring.active.profiles miljøvariabel til prod. Hvis vi ikke definerer spring.profiles.active, det vil som standard være den første profilegenskab, der er defineret i YAML-filen.

Den relative sti for egenskabsfilen er /myApplication/src/main/resources/application.properties.

spring.profiles.active = prod

I dette eksempel viser vi egenskaberne ved hjælp af 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 (); } offentlig ugyldig kørsel (String ... args) kaster Undtagelse {System.out.println ("ved hjælp af miljø:" + myConfig.getEnvironment ()); System.out.println ("navn:" + myConfig.getName ()); System.out.println ("aktiveret:" + myConfig.isEnabled ()); System.out.println ("servere:" + myConfig.getServers ()); }}

Outputtet på kommandolinjen:

ved hjælp af miljø: produktionsnavn: prod-YAML aktiveret: ægte servere: [www.abc.com, www.xyz.com]

5. YAML ejendomsoverskridelse

I Spring Boot kan YAML-filer tilsidesættes af andre YAML-egenskabsfiler.

Før version 2.4.0 blev YAML-egenskaber tilsidesat af egenskabsfiler på følgende placeringer i rækkefølge med højeste prioritet først:

  • Profiles egenskaber placeret uden for den pakkede krukke
  • Profiles egenskaber pakket inde i den pakkede krukke
  • Anvendelsesegenskaber placeret uden for den emballerede krukke
  • Anvendelsesegenskaber pakket inde i den pakkede krukke

Fra og med Spring Boot 2.4 tilsidesætter ekstern fil altid pakkede filer, uanset om den er profilspecifik eller ej.

6. Konklusion

I denne hurtige artikel har vi set, hvordan man konfigurerer egenskaber i Spring Boot-applikationer ved hjælp af YAML. Vi har også set ejendomsoverordnede regler efterfulgt af Spring Boot til YAML-filer.

Koden til denne artikel er tilgængelig på GitHub.


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