Tavaszi tulajdonságok fájl Külső üveg
1. Áttekintés
A tulajdonságfájlok olyan általános módszerek, amelyekkel projekt-specifikus információkat tárolhatunk. Ideális esetben a csomagoláson kívül kell tartanunk, hogy szükség szerint változtathassunk a konfiguráción.
Ebben a gyors bemutatóban különféle dolgokat vizsgálunk meg a tulajdonságfájl betöltése az üvegen kívülről egy Spring Boot alkalmazásban.
2. Az Alapértelmezett hely használata
Megállapodás szerint a Spring Boot egy külső konfigurációs fájlt keres - Alkalmazás . tulajdonságait vagy alkalmazás.yml - 4 előre meghatározott helyen, a következő sorrendben:
- A / config az aktuális könyvtár alkönyvtárát
- Az aktuális könyvtár
- Egy osztályút / config csomag
- Az osztályút gyökere
Ebből kifolyólag, -ban meghatározott tulajdonság alkalmazás.tulajdonságok és a / config az aktuális könyvtár alkönyvtára betöltődik. Ez ütközés esetén felül fogja írni a tulajdonságokat más helyeken is.
3. A parancssor használata
Ha a fenti egyezmény nem működik számunkra, akkor mi is konfigurálja a helyet közvetlenül a parancssorban:
java -jar app.jar --spring.config.location = fájl: ///Users/home/config/jdbc.properties
Átadhatunk egy mappahelyet is, ahol az alkalmazás megkeresi a fájlt:
java -jar app.jar --spring.config.name = alkalmazás, jdbc --spring.config.location = fájl: /// Users / home / config
Alternatív megoldásként a Spring Boot alkalmazást futtathatja a Maven beépülő modulon keresztül. Ott használhatjuk a -D paraméter:
mvn spring-boot: futtassa -Dspring.config.location = "fájl: ///Users/home/jdbc.properties"
4. Környezeti változók használata
Vagy tegyük fel, hogy nem tudjuk megváltoztatni az indítási parancsot. Ami nagyszerű A Spring Boot beolvassa a környezeti változókat is SPRING_CONFIG_NAME és SPRING_CONFIG_LOCATION:
export SPRING_CONFIG_NAME = alkalmazás, jdbc export SPRING_CONFIG_LOCATION = fájl: /// Users / home / config java -jar app.jar
Vegye figyelembe, hogy az alapértelmezett fájl továbbra is betöltődik. Vagyonütközés esetén azonban a környezetspecifikus tulajdonságfájl elsőbbséget élvez.
5. Programozatosan
Vagy ha programozott hozzáférést akarunk, regisztrálhatjuk a PropertySourcesPlaceholderConfigurer bab:
public PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer () {PropertySourcesPlaceholderConfigurer properties = new PropertySourcesPlaceholderConfigurer (); properties.setLocation (új FileSystemResource ("/ Users / home / conf.properties")); tulajdonságok.setIgnoreResourceNotFound (hamis); visszatérési tulajdonságok; }
Itt használtuk PropertySourcesPlaceholderConfigurer hogy a tulajdonságokat egyedi helyről töltse be.
6. Fájl kizárása a zsírdobozból
A Maven Boot plugin automatikusan tartalmazza az összes fájlt a src / main / resources könyvtár a jar csomagra.
Ha nem akarjuk, hogy egy fájl a jar része legyen, akkor egy egyszerű konfigurációval kizárhatjuk:
src / main / resources true ** / conf.properties
Ebben a példában kiszűrtük a konf.tulajdonságok fájl nem szerepelhet a kapott edényben.
7. Következtetés
Mint láthatjuk, maga a Spring Boot keretrendszer gondoskodik számunkra a külső konfigurációról.
Gyakran csak a tulajdonságértékeket kell elhelyeznünk a megfelelő fájlokban és helyeken, de a Spring jobb Java API-ját is használhatjuk a további ellenőrzéshez.
Mint mindig, a példák teljes forráskódja elérhető a GitHubon.