Введение
Spring Boot — это мощная платформа, которая упрощает разработку новых приложений Spring за счет разумных настроек по умолчанию. Одной из его многочисленных функций является предварительно настроенный встроенный сервер, который позволяет разработчикам запускать приложения «из коробки». Однако могут возникнуть ситуации, когда порт сервера по умолчанию (обычно 8080) конфликтует с другими приложениями или не соответствует конкретным требованиям развертывания. Это руководство проведет вас через процесс изменения порта по умолчанию в приложении Spring Boot, гарантируя, что ваше приложение будет бесперебойно работать на нужном порту.
Порт Spring Boot по умолчанию
Прежде чем погрузиться в настройку, важно понять, как Spring Boot настраивает ваш встроенный сервер. По умолчанию приложения Spring Boot используют Tomcat в качестве встроенного сервера, прослушивая порт 8080. Эта конфигурация является гибкой и ее можно легко настроить через свойства приложения или программно.
Способ 1. Использование файлов конфигурации.
Самый простой способ изменить порт по умолчанию — указать новый порт в файле application.properties или application.yml, расположенном в каталоге src/main/resources.
Для application.properties:
server.port=9090
Для application.yml:
server:
port: 9090
После установки нужного порта перезапустите приложение. Теперь он должен быть доступен через новую дверь.
Для приложений, развернутых в разных средах (например, разработка, тестирование, производство), эффективно использовать профили Spring для определения конфигураций, специфичных для среды, включая порты сервера.
Для application-dev.properties:
server.port=9090
Активируйте профиль, установив свойство Spring.profiles.active при запуске приложения:
java -jar myapplication.jar --spring.profiles.active=dev
Эта конфигурация обеспечивает гибкую настройку с учетом специфики среды, упрощая управление настройками порта в различных сценариях развертывания.
Способ 2: настройка порта программно
Если вам нужен более динамический контроль над конфигурацией порта, вы можете настроить порт программно. Этот подход полезен, когда вам нужно определить порт во время выполнения на основе определенных условий или внешних конфигураций.
Пример кода:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
import org.springframework.boot.web.servlet.server.ConfigurableServletWebServerFactory;
import org.springframework.context.annotation.Bean;
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
@Bean
public WebServerFactoryCustomizer webServerFactoryCustomizer() {
return factory -> factory.setPort(9090);
}
}
Этот фрагмент кода определяет компонент WebServerFactoryCustomizer, который настраивает встроенный порт сервера перед запуском приложения.
Способ 3. Использование аргументов командной строки
Вы также можете переопределить порт по умолчанию, указав аргумент командной строки при запуске приложения. Этот метод особенно полезен для временных изменений или при развертывании приложения в разных средах, требующих разных портов.
java -jar myapplication.jar --server.port=9090
Эта команда запускает приложение Spring Boot со встроенным сервером, прослушивающим порт 9090.
Заключение
Изменить порт по умолчанию в приложении Spring Boot очень просто, и его можно выполнить несколькими способами в зависимости от ваших конкретных требований. Независимо от того, посредством свойств приложения, программно, с использованием аргументов командной строки или с помощью конфигураций, специфичных для среды, Spring Boot обеспечивает гибкость, позволяющую гарантировать, что ваше приложение будет работать на порте, наиболее подходящем для ваших нужд. Следуя этому руководству, вы сможете настроить параметры порта приложения Spring Boot в соответствии с вашими стратегиями развертывания и избежать конфликтов портов, обеспечивая бесперебойную разработку и развертывание приложений.