Az application.yml vs application.properties használata a tavaszi rendszerindításban

1. Áttekintés

A Spring Boot szokásos gyakorlata a külső konfiguráció használata a tulajdonságok meghatározásához. Ez lehetővé teszi számunkra, hogy ugyanazt az alkalmazáskódot használjuk különböző környezetekben.

Használhatunk tulajdonságfájlokat, YAML fájlokat, környezeti változókat és parancssori argumentumokat.

Ebben a rövid bemutatóban a tulajdonságok és a YAML fájlok közötti főbb különbségeket tárjuk fel.

2. Tulajdonságok konfigurálása

Alapértelmezés szerint a Spring Boot hozzáférhet egy alkalmazás.tulajdonságok fájl, amely kulcsérték formátumot használ:

spring.datasource.url = jdbc: h2: dev spring.datasource.username = SA spring.datasource.password = jelszó

Itt minden sor egyetlen konfiguráció. Ezért hierarchikus adatokat kell kifejeznünk, ugyanazon előtagok használatával a kulcsokhoz. És ebben a példában minden kulcs tartozik tavasz.adatforrás.

2.1. Helyőrzők a Tulajdonságokban

Értékeinken belül helyettesítőket használhatunk a ${} szintaxis más kulcsok tartalmára, a rendszer tulajdonságaira vagy a környezeti változókra utal.

app.name = MyApp app.description = $ {app.name} egy Spring Boot alkalmazás

2.2. Lista felépítése

Ha ugyanazokkal a tulajdonságokkal rendelkezünk, különböző értékekkel, akkor a lista struktúráját tömbindexekkel ábrázolhatjuk:

application.servers [0] .ip = 127.0.0.1 application.servers [0] .path = / path1 alkalmazás.servers [1] .ip = 127.0.0.2 application.servers [1] .path = / path2 application.servers [ 2] .ip = 127.0.0.3 alkalmazás.szerverek [2] .útvonal = / út3

3. YAML konfiguráció

3.1. YAML formátum

A Java tulajdonságfájlok mellett a YAML alapú konfigurációs fájlokat is használhatjuk a Spring Boot alkalmazásban. A YAML egy kényelmes formátum a hierarchikus konfigurációs adatok megadásához.

Vegyük ugyanazt a példát a tulajdonságfájlunkból, és alakítsuk át YAML-be:

tavasz: adatforrás: jelszó: jelszó url: jdbc: h2: dev felhasználónév: SA

Ez olvashatóbb lehet, mint a tulajdonságfájl-alternatívája, mivel nem tartalmaz ismételt előtagokat.

3.2. Lista felépítése

A YAML-nek tömörebb formátuma van a listák kifejezésére:

alkalmazás: szerverek: - ip: '127.0.0.1' elérési út: '/ path1' - ip: '127.0.0.2' path: '/ path2' - ip: '127.0.0.3' path: '/ path3'

3.3. Több profil

A YAML használatának előnye, hogy több profilt képes tárolni ugyanabban a fájlban. És a YAML-ben három kötőjel jelzi az új dokumentum kezdetét. Tehát az összes profil leírható ugyanabban a fájlban:

naplófájl: név: myapplication.log tavasz: profilok: átmeneti adatforrás: jelszó: '' url: jdbc: h2: átmeneti felhasználónév: SA --- tavasz: profilok: integrációs adatforrás: jelszó: 'jelszó' URL: jdbc: mysql: // localhost: 3306 / db_integration felhasználónév: user

Ebben a példában kettőnk van tavaszi szakaszok különböző profilok megjelölt. Ezenkívül rendelkezhetünk közös tulajdonságokkal a gyökér szintjén - ebben az esetben a naplózás.fájl.név tulajdonság minden profilban ugyanaz lesz.

3.4. Profilok több fájlban

A különböző profilok ugyanazon fájlban való helyettesítése helyett több profilt is tárolhatunk különböző fájlokban. És ez az egyetlen elérhető módszer a használatakor tulajdonságait fájlokat.

Ezt úgy érjük el, hogy a profil nevét betesszük a fájlnévbe - például application-dev.yml vagy application-dev.properties.

4. Tavaszi bakancs használata

Most, hogy meghatároztuk a konfigurációinkat, nézzük meg, hogyan lehet hozzájuk férni.

4.1. Érték Megjegyzés

Beírhatjuk tulajdonságaink értékeit a @Érték kommentár:

@Value ("$ {key.something}") privát karakterlánc injectedProperty;

Itt az ingatlan kulcs.valami terepi injekcióval injektálják az egyik tárgyunkba.

4.2. Környezet Absztrakció

A tulajdonság használatával megszerezhetjük egy ingatlan értékét is Környezet API:

@Autowired privát környezet env; public String getSomeKey () {return env.getProperty ("kulcs.valami"); } 

4.3. ConfigurationProperties Megjegyzés

Végül használhatjuk a @ConfigurationProperties megjegyzés, amely tulajdonságainkat a típusbiztonságú strukturált objektumokhoz köti:

@ConfigurationProperties (prefix = "mail") public class ConfigProperties {String name; Karakterlánc leírása; ...

5. Következtetés

Ebben a cikkben láttunk néhány különbséget a következők között tulajdonságait és yml Spring Boot konfigurációs fájlok. Azt is láttuk, hogy az értékeik hogyan utalhatnak más tulajdonságokra. Végül megvizsgáltuk, hogyan lehet az értékeket befuttatni a futásunkba.

Mint mindig, az összes kódpélda elérhető a GitHubon.