Spring Boot Change Context Path
1. Oversigt
Spring Boot, som standard,serverer indhold på rodkontekststien (“/”).
Og mens det normalt er en god ide at foretrække konvention frem for konfiguration, er der tilfælde, hvor vi ønsker at have en brugerdefineret sti.
I denne hurtige vejledning dækker vi de forskellige måder at konfigurere det på.
2. Indstilling af ejendommen
Ligesom mange andre konfigurationsindstillinger kan kontekststien i Spring Boot ændres ved at indstille en egenskab, dvs. server.servlet.context-sti.
Bemærk, at dette fungerer for Spring Boot 2.x.
For Boot 1.x er ejendommen server.context-sti.
Der er flere måder at indstille denne egenskab på, lad os se på disse en efter en.
2.1. Ved brug af application.properties / yml
Den mest ligefremme måde at ændre kontekststien på er at indstille ejendommen i application.properties/yml fil:
server.servlet.context-path = / baeldung
I stedet for at lægge egenskabsfilen ind src / main / ressourcer, kan vi også gemme det i den aktuelle arbejdsmappe (uden for klassestien).
2.2. Java-systemegenskab
Vi kan også indstille kontekststien som en Java-systemegenskab, 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-baserede systemer kan vi skrive:
$ eksport SERVER_SERVLET_CONTEXT_PATH = / baeldung
På Windows er kommandoen til at indstille en miljøvariabel:
> indstil SERVER_SERVLET_CONTEXT_PATH = / baeldung
Det ovenfor miljømæssige variabel er for Spring Boot 2.x.x, Hvis vi har 1.x.x, variablen er SERVER_CONTEXT_PATH.
2.4. Kommandolinjeargumenter
Vi kan også indstille egenskaberne dynamisk via kommandolinjeargumenter:
$ java -jar app.jar --server.servlet.context-path = / baeldung
3. Brug af Java Config
Lad os nu indstille kontekststien ved at udfylde bønnefabrikken med en konfigurationsbønne.
Med Spring Boot 2 kan vi bruge WebServerFactoryCustomizer:
@Bean public WebServerFactoryCustomizer webServerFactoryCustomizer () {returner fabrik -> factory.setContextPath ("/ baeldung"); }
Med Spring Boot 1 kan vi oprette en forekomst af EmbeddedServletContainerCustomizer:
@Bean public EmbeddedServletContainerCustomizer embeddedServletContainerCustomizer () {return container -> container.setContextPath ("/ baeldung"); }
4. Prioriteret rækkefølge for konfigurationer
Med så mange muligheder kan vi ende med at have mere end en konfiguration for den samme ejendom.
Her er den prioriteret rækkefølge i faldende rækkefølge som Spring Boot bruger til at vælge den effektive konfiguration:
- Java Config
- Kommandolinjeargumenter
- Java-systemegenskaber
- OS-miljøvariabler
- application.properties i aktuelt bibliotek
- application.properties i klassestien (src / main / ressourcer eller den pakkede jar-fil)
5. Konklusion
I denne artikel dækkede vi hurtigt forskellige måder at indstille kontekststien eller andre konfigurationsegenskaber på i en Spring Boot-applikation.