Автор оригинала: 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 .