Spring Properties File Outside jar

1. Prehľad

Súbory nehnuteľností sú bežnou metódou, ktorú môžeme použiť na ukladanie informácií špecifických pre projekt. V ideálnom prípade by sme ho mali ponechať mimo obalu, aby sme mohli vykonať zmeny v konfigurácii podľa potreby.

V tomto rýchlom výučbe sa pozrieme na rôzne spôsoby načítania súboru vlastností z umiestnenia mimo nádoby v aplikácii Spring Boot.

2. Používanie predvoleného umiestnenia

Podľa konvencie Spring Boot hľadá externalizovaný konfiguračný súbor - žiadosť. vlastnosti alebo aplikácia.yml - na 4 vopred určených miestach v tomto poradí:

  • A / konfigur podadresár aktuálneho adresára
  • Aktuálny adresár
  • Triedna cesta / konfigur balíček
  • Koreň triedy

Preto vlastnosť definovaná v application.properties a umiestnené v / konfigur načíta sa podadresár aktuálneho adresára. Toto tiež prepíše vlastnosti na iných miestach v prípade kolízie.

3. Používanie príkazového riadku

Ak vyššie uvedený dohovor nefunguje pre nás, môžeme tiež nakonfigurujte umiestnenie priamo v príkazovom riadku:

java -jar app.jar --spring.config.location = súbor: ///Users/home/config/jdbc.properties

Môžeme tiež odovzdať umiestnenie priečinka, kde aplikácia vyhľadá súbor:

java -jar app.jar --spring.config.name = aplikácia, jdbc --spring.config.location = súbor: /// Users / home / config

Alternatívnym prístupom je spustenie aplikácie Spring Boot prostredníctvom pluginu Maven. Tam môžeme použiť a -D parameter:

mvn spring-boot: run -Dspring.config.location = "súbor: ///Users/home/jdbc.properties"

4. Používanie premenných prostredia

Alebo, povedzme, že nemôžeme zmeniť príkaz na spustenie. Čo je super je Spring Boot bude čítať aj premenné prostredia SPRING_CONFIG_NAME a SPRING_CONFIG_LOCATION:

export SPRING_CONFIG_NAME = aplikácia, jdbc export SPRING_CONFIG_LOCATION = súbor: /// Users / home / config java -jar app.jar

Upozorňujeme, že predvolený súbor sa bude stále načítať. Ale v prípade kolízie majetku súbor vlastností špecifických pre dané prostredie má prednosť.

5. Programovo

Alebo, ak chceme programový prístup, môžeme zaregistrovať a PropertySourcesPlaceholderConfigurer fazuľa:

public PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer () {PropertySourcesPlaceholderConfigurer vlastnosti = nový PropertySourcesPlaceholderConfigurer (); properties.setLocation (nový FileSystemResource ("/ Users / home / conf.properties")); properties.setIgnoreResourceNotFound (false); návratové vlastnosti; }

Tu sme použili PropertySourcesPlaceholderConfigurer načítať vlastnosti z vlastného umiestnenia.

6. Vylúčenie súboru z tučnej nádoby

Doplnok Maven Boot automaticky zahrnie všetky súbory vo formáte src / main / resources adresár balíka jar.

Ak nechceme, aby bol súbor súčasťou jar, môžeme ho jednoduchou konfiguráciou vylúčiť:

   src / main / resources true ** / conf.properties 

V tomto príklade sme odfiltrovali konf.vlastnosti súbor nebude zahrnutý do výsledného jar.

7. Záver

Ako vidíme, o externú konfiguráciu sa za nás stará samotný rámec Spring Boot.

Často musíme iba umiestniť hodnoty vlastností do správnych súborov a umiestnení, ale pre väčšiu kontrolu môžeme použiť aj Java API od Spring.

Celý zdrojový kód príkladov je ako vždy k dispozícii na serveri GitHub.


$config[zx-auto] not found$config[zx-overlay] not found