Legg Byggegenskaper til en Spring Boot-applikasjon

1. Introduksjon

Vanligvis inneholder prosjektets byggekonfigurasjon ganske mye informasjon om applikasjonen vår. Noe av denne informasjonen kan være nødvendig i selve applikasjonen. Så i stedet for å hardkode denne informasjonen, kan vi bruke den fra den eksisterende byggekonfigurasjonen.

I denne artikkelen får vi se hvordan du bruker informasjon fra prosjektets byggekonfigurasjon i en Spring Boot-applikasjon.

2. Bygginformasjonen

La oss si at vi vil vise programbeskrivelsen og versjonen på hjemmesiden til hjemmesiden vår.

Vanligvis er denne informasjonen til stede i pom.xml:

 4.0.0 spring-boot spring-boot war Dette er enkel oppstartsapplikasjon for Spring boot actuator test 0.0.1-SNAPSHOT ... 

3. Henvisning til informasjonen i programegenskapsfilen

For å bruke informasjonen ovenfor i applikasjonen vår, må vi først referere den til en av filene for applikasjonsegenskaper:

[e-postbeskyttet] @ [e-postbeskyttet] @

Her har vi brukt verdien av byggeeiendommen Prosjektbeskrivelse for å angi applikasjonsegenskapen applikasjonsbeskrivelse. På samme måte, applikasjonsversjon er satt med prosjekt.versjon.

Den viktigste biten her er bruken av @ karakter rundt eiendomsnavnet. Dette forteller Spring om å utvide den navngitte eiendommen fra Maven-prosjektet.

Nå, når vi bygger prosjektet vårt, vil disse egenskapene erstattes med verdiene fra pom.xml.

Denne utvidelsen blir også referert til som ressursfiltrering. Det er verdt å merke seg at denne typen filtrering bare brukes på produksjonskonfigurasjonen. Derfor kan vi ikke bruke byggeegenskapene i filene under src / test / ressurser.

En annen ting å merke seg er at hvis vi bruker addResources flagg, den spring-boot: løp mål legger til src / main / resources direkte til klassestien. Selv om dette er nyttig for varmelastingsformål, omgår det ressursfiltrering og følgelig også denne funksjonen.

Nå, Ovennevnte eiendomsutvidelse fungerer bare utenom boksen hvis vi bruker spring-boot-starter-parent.

3.1. Utvide eiendommer uten spring-boot-starter-parent

La oss se hvordan vi kan aktivere denne funksjonen uten å bruke spring-boot-starter-parent avhengighet.

Først må vi aktivere ressursfiltrering inne i element i vår pom.xml:

  src / main / resources true 

Her har vi aktivert ressursfiltrering under src / main / resources kun.

Deretter kan vi legge til avgrensningskonfigurasjonen for maven-resources-plugin:

 org.apache.maven.plugins maven-resources-plugin @ false 

Merk at vi har spesifisert useDefaultDelimiters eiendom som falsk. Dette sikrer at standard Spring-plassholdere som $ {placeholder} ikke utvides av bygningen.

4. Bruke byggeinformasjonen i YAML-filer

Hvis vi bruker YAML til å lagre applikasjonsegenskaper, vi kan kanskje ikke bruke @ for å spesifisere byggeegenskapene. Dette er fordi @ er en reservert karakter i YAML.

Men vi kan overvinne dette av begge konfigurere en annen avgrenser i maven-resources-plugin:

 org.apache.maven.plugins maven-resources-plugin ^ false 

Eller bare ved overordnet resource.delimiter eiendom i eiendomsblokken av vår pom.xml:

 ^ 

Så kan vi bruke ^ i vår YAML-fil:

applikasjonsbeskrivelse: ^ prosjektbeskrivelse ^ applikasjonsversjon: ^ prosjektversjon ^

5. Konklusjon

I denne artikkelen så vi hvordan vi kunne bruke Maven-prosjektinformasjon i applikasjonen vår. Dette kan hjelpe oss med å unngå hardkoding av informasjonen som allerede er tilstede i prosjektbyggingskonfigurasjonen i applikasjonsegenskapefilene.

Og selvfølgelig kan koden som følger med denne opplæringen, bli funnet på GitHub.


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