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:

  1. Java Config
  2. Kommandolinjeargumenter
  3. Java-systemegenskaber
  4. OS-miljøvariabler
  5. application.properties i aktuelt bibliotek
  6. 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.