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.