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.