Proljetna YAML konfiguracija

1. Pregled

Jedan od načina konfiguriranja Spring aplikacija je upotreba YAML konfiguracijskih datoteka.

U ovom brzom članku konfigurirat ćemo različite profile za jednostavnu aplikaciju Spring Boot pomoću YAML-a.

2. Proljetna YAML datoteka

Proljetni profili pomažu proljetnim aplikacijama da definiraju različita svojstva za različita okruženja.

Slijedi jednostavna YAML datoteka koja sadrži dva profila. Tri crtice koje razdvajaju dva profila označavaju početak novog dokumenta, tako da se svi profili mogu opisati u istoj YAML datoteci.

Relativni put primjena.iml datoteka je /myApplication/src/main/resources/application.yml.

Aplikacija Spring uzima prvi profil kao zadani profil, osim ako u aplikaciji Spring nije drugačije navedeno.

spring: config: activate: on-profile: test name: test-YAML environment: testing enabled: false servers: - www.abc.test.com - www.xyz.test.com --- spring: config: activate: on -profile: ime proizvoda: prod-YAML okruženje: omogućena proizvodnja: istinski poslužitelji: - www.abc.com - www.xyz.com

3. Vezanje YAML-a za klasu Config

Za učitavanje skupa povezanih svojstava iz datoteke svojstava stvorit ćemo klasu graha:

@Configuration @EnableConfigurationProperties @ConfigurationProperties javna klasa YAMLConfig {naziv privatnog niza; privatno okruženje gudača; omogućeno privatno logičko polje; privatni poslužitelji popisa = novi ArrayList (); // standardni geteri i postavljači}

Ovdje korištene bilješke su:

  • @Konfiguracijaoznačava klasu kao izvor definicija graha
  • @ConfigurationProperties veže i provjerava vanjske konfiguracije na klasu konfiguracije
  • @EnableConfigurationProperties ova se napomena koristi za omogućavanje @ConfigurationProperties anotirani grah u aplikaciji Spring

4. Pristup YAML svojstvima

Da bismo pristupili YAML svojstvima, kreiramo objekt datoteke YAMLConfig klase i pristupite svojstvima pomoću tog objekta.

U datoteci svojstava postavimo proljeće.aktivni.profili promjenjiva okolina na prod. Ako ne definiramo spring.profiles.active, zadano je za svojstvo prvih profila definirano u YAML datoteci.

Relativni put za datoteku svojstava je /myApplication/src/main/resources/application.properties.

opruga.profili.aktivan = prod

U ovom primjeru prikazujemo svojstva pomoću CommandLineRunner.

@SpringBootApplication javna klasa MyApplication implementira CommandLineRunner {@Autowired private YAMLConfig myConfig; javna statička void glavna (String [] args) {SpringApplication app = new SpringApplication (MyApplication.class); app.run (); } javno void vođenje (String ... args) baca izuzetak {System.out.println ("using environment:" + myConfig.getEnvironment ()); System.out.println ("name:" + myConfig.getName ()); System.out.println ("omogućeno:" + myConfig.isEnabled ()); System.out.println ("poslužitelji:" + myConfig.getServers ()); }}

Izlaz na naredbenom retku:

koristeći okruženje: proizvodno ime: omogućeno prod-YAML: istiniti poslužitelji: [www.abc.com, www.xyz.com]

5. Nadjačavanje svojstva YAML-a

U Spring Boot-u, YAML datoteke mogu biti nadjačane drugim datotekama YAML svojstava.

Prije verzije 2.4.0, YAML svojstva su bila nadjačana datotekama svojstava na sljedećim lokacijama, prvo po redoslijedu s najvećim prioritetom:

  • Svojstva profila smještena izvan zapakirane posude
  • Svojstva profila zapakirana unutar zapakirane posude
  • Svojstva primjene smještena izvan pakirane posude
  • Svojstva primjene zapakirana unutar zapakirane staklenke

Od Spring Boota 2.4, vanjska datoteka uvijek nadjačava zapakirane datoteke, bez obzira na to jesu li specifične za svoj profil ili ne.

6. Zaključak

U ovom kratkom članku vidjeli smo kako konfigurirati svojstva u programima Spring Boot pomoću YAML-a. Također smo vidjeli pravila nadjačavanja svojstava koja slijedi Spring Boot za YAML datoteke.

Kôd za ovaj članak dostupan je na GitHubu.


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