У меня есть приложение весенней загрузки с двумя службами, но мне нужно запустить одну на порту 8080, а другую на 8081. Теперь я разрабатываю с помощью sts (набор инструментов Spring) и запускаю приложение с опцией «Запустить как приложение весенней загрузки». ", поэтому я не знаю, где изменить конфигурацию сервера. Кто-нибудь может мне помочь?
Я видел это, но мне нужно поставить одну службу на 8080, а другую на 8081 с тем же приложением.
Возможный дубликат Как настроить порт для приложения Spring Boot
Обсуждается здесь: stackoverflow.com/questions/36357135/…




Порт можно определить в файле конфигурации application.properties или application.yaml, который вы используете.
В файле application.properties определите его, как показано ниже:
server.port=8090
Или, если вы используете конфигурацию application.yaml, определите ее, как показано ниже:
server:
port: 8090
Итак, если мне нужно получить доступ к двум разным портам, мне нужно запустить приложение на двух серверах, размещенных на двух разных портах?
@AlessioPascucci, если у вас должны быть две службы на разных портах, вам нужно запустить их как два разных приложения, каждое со своим собственным портом.
вы можете написать строку ниже в application.properties или application.yml
сервер.порт=8080
Конечно. Вы можете сделать это в файле application.properties проекта весенней загрузки, установив server.port=number для каждой службы.
Вы не можете запускать две разные службы в одном и том же приложении весенней загрузки в двух разных портах. Если вы хотите, вы можете переместить одну службу в другое приложение Spring Boot. Но номер порта не будет одинаковым для обеих служб.
вы можете настроить SprintBoot на поддержку двух портов. Обычный метод настройки — использовать application.properties или application.yaml как ответ @Madhu Bhat. В SprintBoot настроить другой код порта следующим образом:
создать соединитель
int port = Integer.parseInt(probePort);
Connector httpConnector = new Connector(HTTP_PROTOCOL);
httpConnector.setPort(port);
Http11NioProtocol handler = (Http11NioProtocol) httpConnector.getProtocolHandler();
handler.setMaxThreads(10);
handler.setMinSpareThreads(4);
//handler.setAddress(InetAddress.getLocalHost());
handler.setAddress(StringTool.getInetAddress());
return httpConnector;
настроить коннектор на
((TomcatEmbeddedServletContainerFactory) container).addAdditionalTomcatConnectors(connector);
Но для этого нужно запускать два разных приложения на два разных порта?
Если вы используете Docker (наиболее распространенное решение), вы можете добавить порт или его полный адрес в качестве переменной среды.
docker-compose.yml файл вот такой:
application1:
image: 'application1:latest'
build:
context: ./
container_name: application
environment:
- HOST-APP2=localhost:8082
ports:
- 8091:8080
application2:
image: 'application2:latest'
build:
context: ./
container_name: application
environment:
- HOST-APP1=localhost:8081
ports:
- 8092:8080
или прямо в Dockerfile при сборке контейнеров
посмотрите здесь: https://vsupalov.com/docker-arg-env-variable-guide/ это хорошая статья
Проверьте этот дублированный сообщение. Вы можете сделать это через application.properties.