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:

  1. Java Config
  2. Kommandolinjeargumenter
  3. Java System Properties
  4. OS-miljøvariabler
  5. application.properties i gjeldende katalog
  6. 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.


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