1. Обзор
Spring Boot по умолчанию обслуживает содержимое по пути корневого контекста (“/”) .
И хотя, как правило, лучше предпочесть соглашение конфигурации, бывают случаи, когда мы действительно хотим иметь собственный путь.
В этом кратком руководстве мы рассмотрим различные способы его настройки.
2. Настройка свойства
Как и многие другие параметры конфигурации, контекстный путь в Spring Boot можно изменить, установив свойство, т. е. server.servlet.context-path .
Обратите внимание, что это работает для Spring Boot 2.x.
Для загрузки 1.x свойством является server.context-путь .
Существует несколько способов настройки этого свойства, давайте рассмотрим их один за другим.
2.1. Использование application.properties/yml
Самый простой способ изменить путь к контексту-установить свойство в файле application.properties / yml :
server.servlet.context-path=/baeldung
Вместо того , чтобы помещать файл свойств в src/main/ресурсы , мы также можем сохранить его в текущем рабочем каталоге (вне пути к классу).
2.2. Системное свойство Java
Мы также можем задать путь к контексту в качестве системного свойства Java еще до инициализации контекста:
public static void main(String[] args) { System.setProperty("server.servlet.context-path", "/baeldung"); SpringApplication.run(Application.class, args); }
2.3. Переменная окружения ОС
Spring Boot также может полагаться на переменные среды ОС. В системах на базе Unix мы можем писать:
$ export SERVER_SERVLET_CONTEXT_PATH=/baeldung
В Windows команда для установки переменной среды является:
> set SERVER_SERVLET_CONTEXT_PATH=/baeldung
Вышеуказанная переменная среды предназначена для загрузки Spring 2.x.x , Если у нас есть 1.x.x , переменная SERVER_CONTEXT_PATH .
2.4. Аргументы командной Строки
Мы также можем динамически задавать свойства с помощью аргументов командной строки:
$ java -jar app.jar --server.servlet.context-path=/baeldung
3. Использование конфигурации Java
Теперь давайте установим контекстный путь, заполнив фабрику компонентов компонентом конфигурации.
С помощью Spring Boot 2 мы можем использовать Веб-сервер, настроенный на заводе :
@Bean public WebServerFactoryCustomizerwebServerFactoryCustomizer() { return factory -> factory.setContextPath("/baeldung"); }
С помощью Spring Boot 1 мы можем создать экземпляр EmbeddedServletContainerCustomizer :
@Bean public EmbeddedServletContainerCustomizer embeddedServletContainerCustomizer() { return container -> container.setContextPath("/baeldung"); }
4. Приоритетный порядок конфигураций
С таким количеством опций у нас может оказаться более одной конфигурации для одного и того же свойства.
Вот приоритетный порядок в порядке убывания, который Spring Boot использует для выбора эффективной конфигурации:
- Конфигурация Java
- Аргументы командной Строки
- Системные свойства Java
- Переменные среды ОС
- application.properties в текущем каталоге
- application.properties в пути к классу ( src/main/ресурсы или упакованный файл jar)
5. Заключение
В этой статье мы быстро рассмотрели различные способы настройки пути контекста или любого другого свойства конфигурации в приложении Spring Boot.