Как изменить порт по умолчанию в Spring Boot
1. Вступление
Spring Boot предоставляет разумные значения по умолчанию для многих свойств конфигурации. Тем не менее, нам иногда нужно настроить их с нашими значениями для конкретного случая.
Типичный вариант использования -changing the default port for the embedded server.
В этом кратком руководстве мы рассмотрим несколько способов добиться этого.
Дальнейшее чтение:
Свойства с Spring и Spring Boot
Учебное пособие по работе с файлами свойств и значениями свойств в Spring.
Spring Boot Изменить контекстный путь
Изучите различные способы изменения контекстного пути в приложении Spring Boot
2. Использование файлов свойств
Самый быстрый и простой способ настроить Spring Boot - переопределить значения свойств по умолчанию.
Для порта сервера свойство, которое мы хотим изменить, -server.port.
По умолчанию встроенный сервер запускается на порту 8080. Let’s see how we can provide a different value in an application.properties file:
server.port=8081
Теперь сервер запустится через порт 8081.
Точно так же мы можем сделать то же самое, если используем файлapplication.yml:
server:
port : 8081
Оба файла загружаются автоматически Spring Boot, если они помещены в каталогsrc/main/resources приложения Maven.
2.1. Экологические порты
Если у нас есть приложение, развернутое в разных средах, мы можем захотеть, чтобы оно запускалось на разных портах в каждой системе.
Этого легко достичь, комбинируя подход к файлам свойств с профилями Spring. Specifically, we can create a property file for each environment.с
Например, у нас будет файлapplication-dev.properties с содержанием:
server.port=8081
Затем мы добавим еще один файлapplication-qa.properties с другим портом:
server.port=8082
Конфигурация файлов свойств должна быть достаточной для большинства случаев.
Однако есть и другие варианты для этой цели, так что давайте изучим и их.
3. Программная конфигурация
Мы можем настроить порт программным способом, задав конкретное свойство при запуске приложения или настроив конфигурацию встроенного сервера.
Во-первых, давайте посмотрим, как установить свойство в основном классе@SpringBootApplication:
@SpringBootApplication
public class CustomApplication {
public static void main(String[] args) {
SpringApplication app = new SpringApplication(CustomApplication.class);
app.setDefaultProperties(Collections
.singletonMap("server.port", "8083"));
app.run(args);
}
}
Затем, чтобы настроить конфигурацию сервера, мы должны реализовать интерфейсWebServerFactoryCustomizer:
@Component
public class ServerPortCustomizer
implements WebServerFactoryCustomizer {
@Override
public void customize(ConfigurableWebServerFactory factory) {
factory.setPort(8086);
}
}
Обратите внимание, что это относится к версии Spring Boot 2.x.
Для Spring Boot 1.x мы можем аналогичным образом реализовать интерфейсEmbeddedServletContainerCustomizer.
4. Использование аргументов командной строки
При упаковке и запуске нашего приложения как jar-файла мы можем установить аргументserver.port с помощью командыjava:
java -jar spring-5.jar --server.port=8083
Или используя эквивалентный синтаксис:
java -jar -Dserver.port=8083 spring-5.jar
5. Порядок оценки
В заключение давайте посмотрим на порядок, в котором эти подходы оцениваются Spring Boot.
В основном, приоритет конфигурации:
-
конфигурация встроенного сервера
-
аргументы командной строки
-
файлы свойств
-
основная конфигурация@SpringBootApplication
6. Заключение
В этом кратком руководстве мы увидели, как настроить порт сервера в приложении Spring Boot.
Исходный код примеров доступенover on GitHub.