Spring Boot Change Context Path

1. Panoramica

Spring Boot, per impostazione predefinita, fornisce il contenuto nel percorso del contesto radice ("/") .

E mentre, di solito, è una buona idea preferire la convenzione alla configurazione, ci sono casi in cui vogliamo avere un percorso personalizzato.

In questo rapido tutorial, tratteremo i diversi modi di configurarlo.

2. Impostazione della proprietà

Proprio come molte altre opzioni di configurazione, il percorso del contesto in Spring Boot può essere modificato impostando una proprietà, ad esempio, server.servlet.context-path .

Notare che questo funziona per Spring Boot 2.x.

Per Boot 1.x, la proprietà è server.context-path .

Esistono diversi modi per impostare questa proprietà, esaminiamoli uno per uno.

2.1. Utilizzando application.properties / yml

Il modo più semplice per modificare il percorso del contesto è impostare la proprietà nel file application.properties / yml :

server.servlet.context-path=/baeldung

Invece di mettere il file delle proprietà in src / main / resources , possiamo anche tenerlo nella directory di lavoro corrente (al di fuori del classpath).

2.2. Proprietà di sistema Java

Possiamo anche impostare il percorso del contesto come una proprietà di sistema Java prima ancora che il contesto venga inizializzato:

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

2.3. Variabile di ambiente del sistema operativo

Spring Boot può anche fare affidamento sulle variabili di ambiente del sistema operativo. Su sistemi basati su Unix possiamo scrivere:

$ export SERVER_SERVLET_CONTEXT_PATH=/baeldung

Su Windows, il comando per impostare una variabile d'ambiente è:

> set SERVER_SERVLET_CONTEXT_PATH=/baeldung

La variabile d'ambiente sopra è per Spring Boot 2.xx , se abbiamo 1.xx , la variabile è SERVER_CONTEXT_PATH .

2.4. Argomenti della riga di comando

Possiamo anche impostare le proprietà dinamicamente tramite gli argomenti della riga di comando:

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

3. Utilizzo di Java Config

Ora impostiamo il percorso del contesto popolando il bean factory con un bean di configurazione.

Con Spring Boot 2, possiamo usare WebServerFactoryCustomizer :

@Bean public WebServerFactoryCustomizer webServerFactoryCustomizer() { return factory -> factory.setContextPath("/baeldung"); }

Con Spring Boot 1, possiamo creare un'istanza di EmbeddedServletContainerCustomizer :

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

4. Ordine di priorità delle configurazioni

Con tutte queste opzioni, potremmo finire per avere più di una configurazione per la stessa proprietà.

Ecco l' ordine di priorità in ordine decrescente, che Spring Boot utilizza per selezionare la configurazione effettiva:

  1. Java Config
  2. Argomenti della riga di comando
  3. Proprietà del sistema Java
  4. Variabili d'ambiente del sistema operativo
  5. application.properties nella directory corrente
  6. application.properties nel classpath ( src / main / resources o il file jar pacchettizzato)

5. conclusione

In questo articolo, abbiamo rapidamente coperto diversi modi di impostare il percorso del contesto, o qualsiasi altra proprietà di configurazione, in un'applicazione Spring Boot.