Tavaszi YAML-konfiguráció

1. Áttekintés

A Spring alkalmazások konfigurálásának egyik módja a YAML konfigurációs fájlok használata.

Ebben a rövid cikkben különböző profilokat konfigurálunk egy egyszerű Spring Boot alkalmazáshoz a YAML segítségével.

2. Tavaszi YAML fájl

A tavaszi profilok lehetővé teszik a Spring Applications számára, hogy különböző tulajdonságokat határozzanak meg a különböző környezetekhez.

Az alábbiakban egy egyszerű YAML fájl található, amely két profilt tartalmaz. A két profilt elválasztó három kötőjel egy új dokumentum kezdetét jelzi, így az összes profil leírható ugyanabban a YAML fájlban.

A relatív útja alkalmazás.yml fájl /myApplication/src/main/resources/application.yml.

A Spring alkalmazás az első profilt veszi alapértelmezettként, hacsak a Spring alkalmazás másként nem rendelkezik.

tavasz: config: activ: on-profile: teszt neve: test-YAML környezet: tesztelés engedélyezve: hamis szerverek: - www.abc.test.com - www.xyz.test.com --- tavasz: config: activation: be -profile: prod név: prod-YAML környezet: gyártás engedélyezve: igaz szerverek: - www.abc.com - www.xyz.com

3. A YAML kötése egy Config osztályhoz

A kapcsolódó tulajdonságok készletének betöltéséhez egy tulajdonságfájlból létrehozunk egy bab osztályt:

@Configuration @EnableConfigurationProperties @ConfigurationProperties public class YAMLConfig {private String name; privát String környezet; privát boolean engedélyezve; privát lista szerverek = new ArrayList (); // szabványos mérőeszközök és beállítók}

Az itt használt feliratozás:

  • @ Konfigurációaz osztályt a babdefiníciók forrásaként jelöli
  • @ConfigurationProperties összeköti és érvényesíti a külső konfigurációkat egy konfigurációs osztályhoz
  • @EnableConfigurationProperties ezt az annotációt engedélyezik @ConfigurationProperties kommentált bab a Spring alkalmazásban

4. Hozzáférés a YAML tulajdonságaihoz

A YAML tulajdonságok eléréséhez létrehozunk egy objektumot a YAMLConfig osztály és az adott objektum segítségével érheti el a tulajdonságokat.

A tulajdonságok fájlban állítsuk be a tavasz.aktív.profilok környezeti változó prod. Ha nem definiáljuk spring.profiles.active, alapértelmezés szerint a YAML fájlban meghatározott első profil tulajdonság lesz.

A tulajdonságfájl relatív elérési útja: /myApplication/src/main/resources/application.properties.

tavasz.profilok.aktív = prod

Ebben a példában a tulajdonságokat jelenítjük meg a CommandLineRunner.

@SpringBootApplication nyilvános osztály A MyApplication végrehajtja a CommandLineRunner {@Autowired private YAMLConfig myConfig; public static void main (String [] args) {SpringApplication app = new SpringApplication (MyApplication.class); app.run (); } public void run (String ... args) dobja a (z) {System.out.println ("using environment:" + myConfig.getEnvironment ()) kivételt; System.out.println ("név:" + sajátConfig.getName ()); System.out.println ("engedélyezve:" + myConfig.isEnabled ()); System.out.println ("szerverek:" + myConfig.getServers ()); }}

A parancssor kimenete:

környezetet használva: termelés neve: prod-YAML engedélyezve: igaz szerverek: [www.abc.com, www.xyz.com]

5. A YAML Property Overriding

Tavaszi indításkor a YAML fájlokat felülírhatják más YAML tulajdonságfájlok.

A 2.4.0 verzió előtt a YAML tulajdonságait felülírta a tulajdonságfájlok a következő helyeken, elsőbbségi sorrendben:

  • A csomagolt edényen kívül elhelyezett profilok tulajdonságai
  • A csomagolt edény belsejébe csomagolt profilok tulajdonságai
  • A csomagoláson kívül elhelyezett alkalmazási tulajdonságok
  • Alkalmazási tulajdonságok a csomagolt üvegbe csomagolva

A Spring Boot 2.4-től kezdődően a külső fájlok mindig felülírják a csomagolt fájlokat, függetlenül attól, hogy profil-specifikusak-e vagy sem.

6. Következtetés

Ebben a rövid cikkben azt láthattuk, hogyan konfigurálhatjuk a tulajdonságokat a Spring Boot alkalmazásokban a YAML használatával. Láttuk a tulajdon felülírási szabályait, amelyeket a Spring Boot for YAML fájlok követnek.

A cikk kódja elérhető a GitHubon.


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