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.