Рубрики
Без рубрики

Как изменить порт по умолчанию в Spring Boot

Посмотрите, как вы можете изменить порт по умолчанию в приложении Spring Boot.

Автор оригинала: Loredana Crusoveanu.

1. Обзор

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

И распространенным вариантом использования является изменение порта по умолчанию для встроенного сервера.

В этом кратком руководстве мы рассмотрим несколько способов достижения этой цели.

Дальнейшее чтение:

Свойства с пружиной и пружинным загрузчиком

Путь к контексту изменения загрузки Spring

2. Использование файлов Свойств

Самый быстрый и простой способ настроить Spring Boot-переопределить значения свойств по умолчанию.

Для порта сервера свойство, которое мы хотим изменить, является Для порта сервера свойство, которое мы хотим изменить, является .

По умолчанию встроенный сервер запускается на порту 8080.

Итак, давайте посмотрим, как указать другое значение в файле application.properties file :

server.port=8081

Теперь сервер запустится на порту 8081.

И мы можем сделать то же самое, если используем файл application.yml :

server:
  port : 8081

Оба файла автоматически загружаются Spring Boot, если они помещены в каталог src/main/resources приложения Maven.

2.1. Порты, специфичные для окружающей Среды

Если у нас есть приложение, развернутое в разных средах, мы можем захотеть, чтобы оно работало на разных портах в каждой системе.

Мы можем легко достичь этого, объединив подход файлов свойств с профилями пружин. В частности, мы можем создать файл свойств для каждой среды.

Например, у нас будет файл 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);
    }
}

Далее, чтобы настроить конфигурацию сервера, мы должны реализовать интерфейс WebServer Factory Customized :

@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.

В принципе, приоритет конфигурации-это

  • конфигурация встроенного сервера
  • аргументы командной строки
  • файлы свойств
  • main @SpringBootApplication конфигурация

6. Заключение

В этой статье мы рассмотрели, как настроить порт сервера в приложении Spring Boot.

Как всегда, исходный код примеров доступен на GitHub .