«1. Обзор
Spring Boot предоставляет разумные значения по умолчанию для многих свойств конфигурации. Но иногда нам нужно настроить их с учетом наших конкретных значений.
Распространенным вариантом использования является изменение порта по умолчанию для встроенного сервера.
В этом кратком руководстве мы рассмотрим несколько способов добиться этого.
2. Использование файлов свойств
Самый быстрый и простой способ настроить Spring Boot — переопределить значения свойств по умолчанию.
Для порта сервера мы хотим изменить свойство server.port.
По умолчанию встроенный сервер запускается на порту 8080.
Итак, давайте посмотрим, как указать другое значение в файле application.properties:
server.port=8081
Теперь сервер будет запускаться на порту 8081. ~ ~~ И мы можем сделать то же самое, если используем файл application.yml:
Оба файла автоматически загружаются Spring Boot, если они помещены в каталог src/main/resources приложения Maven.
server:
port : 8081
2.1. Порты, специфичные для среды
Если у нас есть приложение, развернутое в разных средах, мы можем захотеть, чтобы оно работало на разных портах в каждой системе.
Мы можем легко добиться этого, объединив подход файлов свойств с профилями Spring. В частности, мы можем создать файл свойств для каждой среды.
Например, у нас будет файл application-dev.properties со следующим содержимым:
Затем мы добавим еще один файл application-qa.properties с другим портом:
server.port=8081
Теперь конфигурации файлов свойств должно быть достаточно для большинства случаев. Однако есть и другие варианты этой цели, поэтому давайте рассмотрим и их.
server.port=8082
3. Программная конфигурация
Мы можем настроить порт программно, установив определенное свойство при запуске приложения или настроив конфигурацию встроенного сервера.
Во-первых, давайте посмотрим, как установить свойство в основном классе @SpringBootApplication:
Далее, чтобы настроить конфигурацию сервера, мы должны реализовать интерфейс WebServerFactoryCustomizer:
@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);
}
}
Обратите внимание, что это относится к версии Spring Boot 2.x.
@Component
public class ServerPortCustomizer
implements WebServerFactoryCustomizer<ConfigurableWebServerFactory> {
@Override
public void customize(ConfigurableWebServerFactory factory) {
factory.setPort(8086);
}
}
Для Spring Boot 1.x мы можем аналогичным образом реализовать интерфейс EmbeddedServletContainerCustomizer.
4. Использование аргументов командной строки
При упаковке и запуске нашего приложения в виде jar-файла мы можем установить аргумент server.port с помощью команды java:
или с помощью эквивалентного синтаксиса: ~ ~~
java -jar spring-5.jar --server.port=8083
5. Порядок оценки
java -jar -Dserver.port=8083 spring-5.jar
В заключение давайте посмотрим на порядок, в котором эти подходы оцениваются Spring Boot.
По сути, приоритет конфигураций —
файлы свойств аргументов командной строки конфигурации встроенного сервера main @SpringBootApplication configuration
-
6. Заключение
В этой статье мы увидели, как настроить порт сервера в Spring Boot применение.
Как всегда, исходный код примеров доступен на GitHub.
«