Caminho de contexto de alteração de inicialização da Primavera

Caminho de contexto de alteração de inicialização da Primavera

1. Visão geral

Spring Boot, by default,serves content on the root context path (“/”).

E embora, geralmente, seja uma boa ideia preferir a convenção à configuração, há casos em que queremos ter um caminho personalizado.

Neste tutorial rápido, cobriremos as diferentes maneiras de configurá-lo.

2. Definir a propriedade

Assim como muitas outras opções de configuração, o caminho de contexto no Spring Boot pode ser alterado definindo uma propriedade, ou seja,server.servlet.context-path.

Observe que isso funciona para o Spring Boot 2.x.

Para Boot 1.x, a propriedade éserver.context-path.

Existem várias maneiras de definir essa propriedade, vamos dar uma olhada nelas uma por uma.

2.1. Usandoapplication.properties /yml

A maneira mais direta de alterar o caminho do contexto é definir a propriedade no arquivoapplication.properties /yml:

server.servlet.context-path=/example

Em vez de colocar o arquivo de propriedades emsrc/main/resources, também podemos mantê-lo no diretório de trabalho atual (fora do classpath).

2.2. Propriedade do sistema Java

Também podemos definir o caminho do contexto como uma propriedade do sistema Java antes mesmo que o contexto seja inicializado:

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

2.3. Variável de ambiente do sistema operacional

O Spring Boot também pode contar com variáveis ​​de ambiente do SO. Em sistemas baseados em Unix, podemos escrever:

$ export SERVER_SERVLET_CONTEXT_PATH=/example

No Windows, o comando para definir uma variável de ambiente é:

> set SERVER_SERVLET_CONTEXT_PATH=/example

Oabove environment variable is for Spring Boot 2.x.x,If we have 1.x.x, a variável éSERVER_CONTEXT_PATH.

2.4. Argumentos da linha de comando

Também podemos definir as propriedades dinamicamente por meio de argumentos da linha de comando:

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

3. Usando Java Config

Agora vamos definir o caminho do contexto, populando a fábrica de feijão com um bean de configuração.

Com Spring Boot 2, podemos usarWebServerFactoryCustomizer:

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

Com Spring Boot 1, podemos criar uma instância deEmbeddedServletContainerCustomizer:

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

4. Ordem prioritária de configurações

Com tantas opções, podemos ter mais de uma configuração para a mesma propriedade.

Aqui está opriority order in descending order, que Spring Boot usa para selecionar a configuração efetiva:

  1. Configuração Java

  2. Argumentos da linha de comando

  3. Propriedades do sistema Java

  4. Variáveis ​​de ambiente do SO

  5. application.properties no diretório atual

  6. application.properties no caminho de classe (src/main/resources ou o arquivo jar empacotado)

5. Conclusão

Neste artigo, abordamos rapidamente diferentes maneiras de definir o caminho do contexto, ou qualquer outra propriedade de configuração, em um aplicativo Spring Boot.