Перейти к основному содержимому

Контекстный путь изменения Spring Boot

· 3 мин. чтения

Упражнение: Сложение двух чисел

Даны два неотрицательный целых числа в виде непустых связных списков. Их цифры хранятся в обратном порядке. И каждый елемент списка содержить ровно одну цифру. Сложите эти два числа и верните сумму в виде связного списка ...

ANDROMEDA

1. Обзор

Spring Boot по умолчанию обслуживает содержимое по пути корневого контекста («/») .

Хотя обычно рекомендуется предпочесть соглашение конфигурации, бывают случаи, когда мы хотим иметь собственный путь.

В этом кратком руководстве мы рассмотрим различные способы его настройки.

2. Установка свойства

Как и многие другие параметры конфигурации, контекстный путь в Spring Boot можно изменить, установив свойство server.servlet.context-path .

Обратите внимание, что это работает для Spring Boot 2.x. Для Boot 1.x это свойство server.context-path .

Существует несколько способов установки этого свойства, поэтому давайте рассмотрим их один за другим.

2.1. Использование application.properties/yml ``

Самый простой способ изменить контекстный путь — установить свойство в файле application.properties/yml : ``

server.servlet.context-path=/foreach

Вместо того, чтобы помещать файл свойств в src/main/resources , мы также можем хранить его в текущем рабочем каталоге (вне пути к классам).

2.2. Системное свойство Java

Мы также можем установить контекстный путь как системное свойство Java еще до того, как контекст будет инициализирован:

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

2.3. Переменная среды ОС

Spring Boot также может полагаться на переменные среды ОС. В системах на базе Unix мы можем написать:

$ export SERVER_SERVLET_CONTEXT_PATH=/foreach

В Windows команда для установки переменной среды:

> set SERVER_SERVLET_CONTEXT_PATH=/foreach

Приведенная выше переменная среды предназначена для Spring Boot 2.xx. Если у нас есть 1.xx , переменная — SERVER_CONTEXT_PATH .

2.4. Аргументы командной строки

Мы также можем установить свойства динамически с помощью аргументов командной строки:

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

3. Использование конфигурации Java

Теперь давайте установим контекстный путь, заполнив фабрику компонентов конфигурационным компонентом.

С Spring Boot 2 мы можем использовать WebServerFactoryCustomizer :

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

С Spring Boot 1 мы можем создать экземпляр EmbeddedServletContainerCustomizer :

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

4. Приоритетный порядок конфигураций

С таким количеством опций у нас может быть более одной конфигурации для одного и того же свойства.

Вот порядок приоритета в порядке убывания, который Spring Boot использует для выбора эффективной конфигурации:

  1. Конфигурация Java
  2. Аргументы командной строки
  3. Свойства системы Java
  4. Переменные среды ОС
  5. application.properties в текущем каталоге
  6. application.properties в пути к классам ( src/main/resources или упакованный файл jar)

5. Вывод

В этой краткой статье мы рассмотрели различные способы установки контекстного пути или любого другого свойства конфигурации в приложении Spring Boot.