Jarná konfigurácia YAML

1. Prehľad

Jedným zo spôsobov konfigurácie aplikácií Spring je použitie konfiguračných súborov YAML.

V tomto rýchlom článku nakonfigurujeme rôzne profily pre jednoduchú aplikáciu Spring Boot pomocou YAML.

2. Jarný súbor YAML

Profily pružiny umožňujú pružným aplikáciám definovať rôzne vlastnosti pre rôzne prostredia.

Nasleduje jednoduchý súbor YAML, ktorý obsahuje dva profily. Tri pomlčky oddeľujúce dva profily označujú začiatok nového dokumentu, takže všetky profily je možné popísať v rovnakom súbore YAML.

Relatívna cesta k aplikácia.yml súbor je /myApplication/src/main/resources/application.yml.

Aplikácia Jar berie prvý profil ako predvolený profil, pokiaľ v aplikácii Jar nie je uvedené inak.

jar: konfigurácia: aktivácia: na profile: názov testu: prostredie test-YAML: testovanie povolené: falošné servery: - www.abc.test.com - www.xyz.test.com --- jar: konfigurácia: aktivácia: na -profil: prod názov: prod-YAML prostredie: výroba povolená: skutočné servery: - www.abc.com - www.xyz.com

3. Viazanie YAML na triedu Config

Ak chcete načítať množinu súvisiacich vlastností zo súboru vlastností, vytvoríme triedu fazule:

@Configuration @EnableConfigurationProperties @ConfigurationProperties verejná trieda YAMLConfig {súkromný názov reťazca; súkromné ​​reťazcové prostredie; povolené súkromné ​​boolean; servery súkromného zoznamu = nový ArrayList (); // štandardné getre a setre}

Tu použité anotácie sú:

  • @ Konfiguráciaoznačí triedu ako zdroj definícií fazule
  • @ConfigurationProperties viaže a overuje externé konfigurácie na konfiguračnú triedu
  • @EnableConfigurationProperties táto anotácia sa používa na povolenie @ConfigurationProperties anotované fazule v jarnej aplikácii

4. Prístup k vlastnostiam YAML

Pre prístup k vlastnostiam YAML vytvoríme objekt YAMLConfig triedy a pristupovať k vlastnostiam pomocou tohto objektu.

V súbore vlastností nastavíme jar.aktivne.profily premenná prostredia na prod. Ak nedefinujeme spring.profiles.active, bude predvolene nastavená na prvú vlastnosť profilov definovanú v súbore YAML.

Relatívna cesta k súboru vlastností je /myApplication/src/main/resources/application.properties.

spring.profiles.active = prod

V tomto príklade zobrazujeme vlastnosti pomocou znaku CommandLineRunner.

@SpringBootApplication verejná trieda MyApplication implementuje CommandLineRunner {@Autowired private YAMLConfig myConfig; public static void main (String [] args) {SpringApplication app = new SpringApplication (MyApplication.class); app.run (); } public void run (String ... args) vyvolá Exception {System.out.println ("using environment:" + myConfig.getEnvironment ()); System.out.println ("name:" + myConfig.getName ()); System.out.println ("enabled:" + myConfig.isEnabled ()); System.out.println ("servery:" + myConfig.getServers ()); }}

Výstup na príkazovom riadku:

pomocou prostredia: produkčný názov: povolený prod-YAML: skutočné servery: [www.abc.com, www.xyz.com]

5. Prepísanie vlastnosti YAML

V Spring Boot môžu byť súbory YAML prepísané inými súbormi vlastností YAML.

Pred verziou 2.4.0 boli vlastnosti YAML prepísané súbormi vlastností na nasledujúcich miestach, a to v poradí s najvyššou prioritou ako prvé:

  • Vlastnosti profilov umiestnené mimo zabalenej nádoby
  • Vlastnosti profilov zabalené vo vnútri zabalenej nádoby
  • Vlastnosti aplikácie umiestnené mimo zabalenej nádoby
  • Vlastnosti aplikácie zabalené vo vnútri zabalenej nádoby

Od verzie Spring Boot 2.4 externý súbor vždy prepíše zabalené súbory bez ohľadu na to, či sú špecifické pre váš profil alebo nie.

6. Záver

V tomto rýchlom článku sme videli, ako nakonfigurovať vlastnosti v aplikáciách Spring Boot pomocou YAML. Videli sme tiež pravidlá prepísania vlastností, ktoré nasledovali Spring Boot pre súbory YAML.

Kód tohto článku je k dispozícii na GitHub.