Spring Boot Change Context Path
1. Oversikt
Spring Boot, som standard,serverer innhold på rotkontekstbanen (“/”).
Og mens det vanligvis er en god ide å foretrekke konvensjon fremfor konfigurasjon, er det tilfeller når vi ønsker å ha en tilpasset bane.
I denne raske opplæringen vil vi dekke de forskjellige måtene å konfigurere den på.
2. Stille inn eiendommen
Akkurat som mange andre konfigurasjonsalternativer, kan kontekstbanen i Spring Boot endres ved å sette en egenskap, dvs. server.servlet.context-path.
Merk at dette fungerer for Spring Boot 2.x.
For Boot 1.x er eiendommen server.context-path.
Det er flere måter å sette denne egenskapen på, la oss se på disse en etter en.
2.1. Ved hjelp av application.properties / yml
Den enkleste måten å endre kontekstbanen er å sette egenskapen i application.properties/yml fil:
server.servlet.context-path = / baeldung
I stedet for å legge inn eiendomsfilen src / main / resources, kan vi også beholde den i gjeldende arbeidskatalog (utenfor klassestien).
2.2. Java-systemegenskap
Vi kan også angi kontekstbanen som en Java-systemegenskap før selv konteksten initialiseres:
public static void main (String [] args) {System.setProperty ("server.servlet.context-path", "/ baeldung"); SpringApplication.run (Application.class, args); }
2.3. OS-miljøvariabel
Spring Boot kan også stole på OS-miljøvariabler. På Unix-baserte systemer kan vi skrive:
$ eksport SERVER_SERVLET_CONTEXT_PATH = / baeldung
På Windows er kommandoen for å sette en miljøvariabel:
> sett SERVER_SERVLET_CONTEXT_PATH = / baeldung
De ovenfor miljøvariabel er for Spring Boot 2.x.x, Hvis vi har 1.x.x, er variabelen SERVER_CONTEXT_PATH.
2.4. Kommandolinjeargumenter
Vi kan også sette egenskapene dynamisk via kommandolinjeargumenter:
$ java -jar app.jar --server.servlet.context-path = / baeldung
3. Bruke Java Config
La oss nå sette kontekststien ved å fylle bønnefabrikken med en konfigurasjonsbønne.
Med Spring Boot 2 kan vi bruke WebServerFactoryCustomizer:
@Bean offentlig WebServerFactoryCustomizer webServerFactoryCustomizer () {returner fabrikk -> factory.setContextPath ("/ baeldung"); }
Med Spring Boot 1 kan vi lage en forekomst av EmbeddedServletContainerCustomizer:
@Bean public EmbeddedServletContainerCustomizer embeddedServletContainerCustomizer () {returbeholder -> container.setContextPath ("/ baeldung"); }
4. Prioritert rekkefølge for konfigurasjoner
Med så mange alternativer kan det hende at vi får mer enn én konfigurasjon for samme eiendom.
Her er prioritetsrekkefølge i synkende rekkefølge, som Spring Boot bruker for å velge den effektive konfigurasjonen:
- Java Config
- Kommandolinjeargumenter
- Java System Properties
- OS-miljøvariabler
- application.properties i gjeldende katalog
- application.properties i klassestien (src / main / resources eller den pakket jar-filen)
5. Konklusjon
I denne artikkelen dekket vi raskt forskjellige måter å stille inn kontekstbanen eller andre konfigurasjonsegenskaper i en Spring Boot-applikasjon.