Spring Boot Change Context Path

1. Overzicht

Spring Boot, standaard,geeft inhoud weer op het root-contextpad ("/").

En hoewel het meestal een goed idee is om de voorkeur te geven aan conventie boven configuratie, zijn er gevallen waarin we een aangepast pad willen hebben.

In deze korte tutorial bespreken we de verschillende manieren om het te configureren.

2. De eigenschap instellen

Net als veel andere configuratie-opties, kan het contextpad in Spring Boot worden gewijzigd door een eigenschap in te stellen, d.w.z. server.servlet.context-pad.

Merk op dat dit werkt voor Spring Boot 2.x.

Voor Boot 1.x is de eigenschap server.context-path.

Er zijn meerdere manieren om deze eigenschap in te stellen, laten we deze een voor een bekijken.

2.1. Gebruik makend van application.properties / yml

De meest eenvoudige manier om het contextpad te wijzigen, is door de eigenschap in te stellen in het application.properties/yml het dossier:

server.servlet.context-path = / baeldung

In plaats van het eigenschappenbestand in src / main / resources, kunnen we het ook in de huidige werkdirectory houden (buiten het klassenpad).

2.2. Java-systeemeigenschap

We kunnen het contextpad ook instellen als een Java-systeemeigenschap voordat zelfs de context is geïnitialiseerd:

public static void main (String [] args) {System.setProperty ("server.servlet.context-path", "/ baeldung"); SpringApplication.run (Application.class, args); }

2.3. OS-omgevingsvariabele

Spring Boot kan ook vertrouwen op omgevingsvariabelen van het besturingssysteem. Op Unix-gebaseerde systemen kunnen we schrijven:

$ export SERVER_SERVLET_CONTEXT_PATH = / baeldung

Op Windows is de opdracht om een ‚Äč‚Äčomgevingsvariabele in te stellen:

> stel SERVER_SERVLET_CONTEXT_PATH = / baeldung

De bovenstaande omgevingsvariabele is voor Spring Boot 2.x.x, Als we 1.x.x hebben, de variabele is SERVER_CONTEXT_PATH.

2.4. Opdrachtregelargumenten

We kunnen de eigenschappen ook dynamisch instellen via opdrachtregelargumenten:

$ java -jar app.jar --server.servlet.context-path = / baeldung

3. Java Config gebruiken

Laten we nu het contextpad instellen door de bonenfabriek te vullen met een configuratieboon.

Met Spring Boot 2 kunnen we gebruiken WebServerFactoryCustomizer:

@Bean openbare WebServerFactoryCustomizer webServerFactoryCustomizer () {terug fabriek -> factory.setContextPath ("/ baeldung"); }

Met Spring Boot 1 kunnen we een instantie van EmbeddedServletContainerCustomizer:

@Bean openbaar EmbeddedServletContainerCustomizer embeddedServletContainerCustomizer () {retourcontainer -> container.setContextPath ("/ baeldung"); }

4. Prioriteitsvolgorde van configuraties

Met zoveel opties kunnen we uiteindelijk meer dan één configuratie hebben voor dezelfde woning.

Hier is de prioriteitsvolgorde in aflopende volgorde, die Spring Boot gebruikt om de effectieve configuratie te selecteren:

  1. Java Config
  2. Opdrachtregelargumenten
  3. Java-systeemeigenschappen
  4. OS-omgevingsvariabelen
  5. application.properties in huidige directory
  6. application.properties in het klassenpad (src / main / resources of het verpakte jar-bestand)

5. Conclusie

In dit artikel hebben we snel verschillende manieren besproken om het contextpad of een andere configuratie-eigenschap in een Spring Boot-toepassing in te stellen.