Как настроить порт для приложения Spring Boot
Как настроить порт TCP/IP, прослушиваемый приложением Spring Boot, чтобы он не использовал порт по умолчанию 8080.
67 ответов
Как сказано в документации, либо установить server.port
как системное свойство, используя параметр командной строки для jvm --server.port=8090
или добавить application.properties
в /src/main/resources/
с
server.port = 8090
Для случайного использования порта
server.port=0
Существует два основных способа изменить порт во встроенном Tomcat в приложении Spring Boot.
Изменить application.properties
Сначала вы можете попробовать файл application.properties в папке /resources:
Изменить вариант виртуальной машины
Во-вторых, если вы хотите избежать изменения каких-либо файлов и проверки того, что вам нужно только на локальном компьютере, вы можете использовать vm arg:
Перейти в "Выполнить" -> "Редактировать конфигурации" -> "Параметры виртуальной машины"
-Dserver.port=8090
Кроме того, если вам нужна дополнительная информация, вы можете просмотреть следующее сообщение в блоге здесь: Изменение порта в приложении Spring Boot
Поскольку Spring Boot предоставляет различные механизмы экстернализации конфигурации (через различные PropertySource
реализации и / или процессоры, подключенные к Environment
Объект в порядке), вы можете установить любое свойство за пределами вашего архива JAR с помощью следующих методов:
Передайте свойство через аргумент командной строки в качестве аргумента приложения
java -jar <path/to/my/jar> --server.port=7788
От собственности в
SPRING_APPLICATION_JSON
(Spring Boot 1.3.0+)Определите переменную среды в оболочке U*IX:
SPRING_APPLICATION_JSON='{"server.port":7788}' java -jar <path/to/my/jar>
Используя системное свойство Java:
java -Dspring.application.json='{"server.port":7788}' -jar <path/to/my/jar>
Передайте аргумент командной строки:
java -jar <path/to/my/jar> --spring.application.json='{"server.port":7788}'
Определить системное свойство JVM
java -Dserver.port=7788 -jar <path/to/my/jar>
Определить переменную среды ОС
U*IX Shell
SERVER_PORT=7788 java -jar <path/to/my/jar>
Windows
SET SERVER_PORT=7788 java -jar <path/to/my/jar>
Поместить недвижимость в
./config/application.properties
конфигурационный файлserver.port=7788
и запустить:
java -jar <path/to/my/jar>
Поместить недвижимость в
./config/application.yaml
server: port: 7788
и запустить:
java -jar <path/to/my/jar>
Поместить недвижимость в
./application.properties
server.port=7788
и запустить:
java -jar <path/to/my/jar>
Поместить недвижимость в
./application.yaml
server: port: 7788
и запустить:
java -jar <path/to/my/jar>
Вы можете объединить вышеуказанные методы все вместе, и первая конфигурация в списке будет иметь приоритет над последней.
Например:
SERVER_PORT=2266 java -Dserver.port=5566 -jar <path/to/my/jar> --server.port=7788
Сервер запустится и прослушит порт 7788.
Это очень полезно, предоставляя свойства по умолчанию в PropertySources с более низким приоритетом (и обычно упакованные в архиве или закодированные в источнике), а затем переопределяя их в среде выполнения. И это философия дизайна Spring Boot:
Будьте самонадеянными, но быстро уходите с дороги, поскольку требования начинают отличаться от значений по умолчанию.
SERVER_NAME
в server.name
преобразование было сделано Relaxed Binding.
Также вы можете настроить порт программно
@Configuration
public class ServletConfig {
@Bean
public EmbeddedServletContainerCustomizer containerCustomizer() {
return (container -> {
container.setPort(8012);
});
}
}
Если вы хотите запустить его локально, используйте это -
mvn spring-boot:run -Drun.jvmArguments='-Dserver.port=8085'
Начиная с Spring Boot 2.0, вот команда, которая работает (подсказки были здесь):
mvn spring-boot:run -Dspring-boot.run.arguments=--server.port=8085
Вы можете установить порт в коде Java:
HashMap<String, Object> props = new HashMap<>();
props.put("server.port", 9999);
new SpringApplicationBuilder()
.sources(SampleController.class)
.properties(props)
.run(args);
Или в application.yml:
server:
port: 9999
Или в приложении. Свойства:
server.port=9999
Или как параметр командной строки:
-Dserver.port=9999
Если вы используете application.yml
добавить следующие строки к нему
server:
port: 9000
и, конечно, 0 для случайного порта.
Как объясняется в документации Spring, есть несколько способов сделать это:
Либо вы устанавливаете порт в командной строке (например, 8888)
-Dserver.port=8888
или же --server.port=8888
Пример: java -jar -Dserver.port=8888 test.jar
Или вы устанавливаете порт в приложении. Свойства
server.port=${port:4588}
или (в application.yml с синтаксисом yaml)
server:
port: ${port:4588}
Если порт, переданный -Dport (или -Dserver.port), задан в командной строке, то этот порт будет учитываться. Если нет, то порт будет 4588 по умолчанию.
Если вы хотите использовать порт в файле свойств независимо от переменной среды, вам просто нужно написать:
server.port=8888
Включить ниже недвижимость в application.properties
server.port=8080
Когда вам нужен программный способ сделать это, вы можете установить его во время запуска:
System.getProperties().put( "server.port", 80 );
SpringApplication.run(App.class, args);
Это может помочь для таких вещей, как зависящий от среды порт. Хорошего дня
По умолчанию приложения Spring Boot запускаются на встроенном Tomcat через порт 8080.
Чтобы изменить порт по умолчанию, вам просто нужно изменить атрибут server.port, который автоматически читается во время выполнения приложениями Spring Boot.
Вы можете изменить его следующими тремя способами:
- Определите server.port в application.properties, как показано ниже:
server.port=9090
Определите server.port программно с помощью реализации интерфейса EmbeddedServletContainerCustomizer.
Установите явно server.port при запуске приложения через командную строку следующим образом:
java -Dserver.port = 9090 -jar исполняемый файл.jar
java -jar executetable.jar –server.port=9090
Ознакомьтесь с подробным объяснением здесь: Как изменить порт по умолчанию для приложения Spring Boot
Вы можете указать порт, переопределив EmbeddedServletContainerFactory
Бин в вашей конфигурации (на основе Java или XML). Там вы можете указать порт для используемого встроенного контейнера сервлета. Пожалуйста, посмотрите параграф Spring Boot - Core "Поддержка встроенных контейнеров сервлетов" и пример там. Надеюсь это поможет.
В application.properties
файл присутствует в ресурсах:
server.port=8082
Чтобы расширить другие ответы:
В документации есть раздел для тестирования, который объясняет, как настроить порт в интеграционных тестах:
При интеграционных тестах конфигурация порта выполняется с помощью аннотации @SpringBootTest
и webEnvironment
ценности.
Случайный порт:
@SpringBootTest(webEnvironment=WebEnvironment.RANDOM_PORT)
Вы можете ввести значение с помощью @LocalServerPort
который так же, как @Value("${local.server.port}")
,
- Пример:
Случайная тестовая конфигурация порта:
@RunWith(SpringRunner.class
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
public class ExampleTest {
...
@LocalServerPort //to inject port value
int port;
}
Определенный порт:
@SpringBootTest(webEnvironment=WebEnvironment.DEFINED_PORT)
Он принимает значение от server.port
если определено.
- Если определяется с помощью
@TestPropertySource(properties = "server.port=9192")
, он переопределяет другие определенные значения. - Если нет, он принимает значение от
src/test/resources/application.properties
(если существует). - И, наконец, если он не определен, он начинается со значения по умолчанию
8080
,
Пример:
Определена конфигурация тестирования порта:
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)
@TestPropertySource(properties = "server.port=9192")
public class DemoApplicationTests {
@Test
public void contextLoads() {
}
}
Если вы используете gradle в качестве инструмента сборки, вы можете установить порт сервера в файле application.yml как:
server:
port: 8291
Если вы используете maven, то порт можно указать в файле application.properties как:
server.port: 8291
Есть три способа сделать это в зависимости от используемого файла конфигурации приложения.
- Если вы используете набор файлов application.properties
server.port = 8090 2. Если вы используете файл application.yml, задайте свойство порта сервера в формате YAML, как показано ниже
сервер: порт: 8090 3. Вы также можете установить свойство как системное свойство в основном методе
System.setProperty("server.port","8090");
Когда запускается приложение весенней загрузки, встроенный сервер, такой как Tomcat, запускается с портом по умолчанию. Встроенный tomcat начинается с порта 8080 по умолчанию. Есть много способов изменить порт сервера по умолчанию.
Использование файла свойств (.properties/.yml)
Чтобы изменить порт сервера с помощью файла свойств, нам нужно настроить свойство server.port.
а. Использование application.properties в classpath, например, src\main\resources\application.properties
server.port = 8585
Сервер запустится с портом 8585. Чтобы получить произвольный порт сервера, присвойте 0 свойству.
server.port = 0
Теперь весенняя загрузка запустит сервер на порту, который в настоящее время не используется ни одним сервером в системе.
б. Использование application.yml в classpath, например, src\main\resources\application.yml.
server:
port: 8585
Сервер запустится с портом 8585.
Для случайного порта назначьте 0.
server:
port: 0
Использование команды java с --server.port или -Dserver.port
Предположим, у нас есть исполняемый файл JAR с именем my-app.jar, а затем при запуске приложения весенней загрузки с помощью команды java мы можем использовать аргумент следующим образом.
Использование --server.port
java -jar my-app.jar --server.port=8585
Использование -Dserver.port
java -jar -Dserver.port=8585 my-app.jar
Сервер запустится с портом 8585.
Использование Java-команды с --port или -Dport вкратце
Короче говоря, --server.port и -Dserver.port мы можем удалить ключевое слово сервера и сделать его любым коротким ключевым словом, таким как --port и -Dport. Мы можем использовать любое короткое ключевое слово. Здесь мы используем порт в качестве короткого ключевого слова. Для этого нам нужно настроить заполнитель в файле свойств следующим образом.
Использование application.properties
server.port=${port:8282}
Использование application.yml
server:
port: ${port:8282}
Если мы не передадим порт в качестве аргумента, то по умолчанию сервер начнёт с 8282. Если нам нужен другой порт, нам нужно передать желаемый порт в аргументе следующим образом. Предположим, у нас есть исполняемый файл JAR с именем my-app.jar.
Использование --port
java -jar my-app.jar --port=8585
Использование -Dport
java -jar -Dport=8585 my-app.jar
Сервер запустится с портом 8585.
Использование SERVER_PORT с SpringApplication программно
SpringApplication имеет метод setDefaultProperties(), который используется для изменения свойств загрузки по умолчанию. Предположим, мы хотим изменить порт по умолчанию, затем нам нужно создать карту и указать порт с ключом SERVER_PORT. Найдите пример.
MyApplication.java
package com.humoyun;
import java.util.HashMap;
import java.util.Map;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication application = new SpringApplication(MyApplication.class);
Map<String, Object> map = new HashMap<>();
map.put("SERVER_PORT", "8585");
application.setDefaultProperties(map);
application.run(args);
}
}
Весенняя загрузка запустит сервер с портом 8585.
Есть много других вещей, которые вы можете изменить в конфигурации сервера, изменив application.properties. Как время сеанса, адрес и порт и т. Д. См. Ниже сообщение
ссылка: http://docs.spring.io/spring-boot/docs/1.4.x/reference/html/common-application-properties.html
Я использовал несколько из них, как показано ниже.
server.session.timeout=1
server.port = 3029
server.address= deepesh
Добавьте это в свой application.properties
файл
server.port= 8080
По умолчанию приложение весенней загрузки запускается со встроенного сервера tomcat, запускается с порта 8080 по умолчанию. Spring предоставляет вам следующие различные настройки, вы можете выбрать один из них.
ПРИМЕЧАНИЕ. Вы можете использовать server.port=0. Весенняя загрузка найдет для нас любой неназначенный случайный порт http.
1) application.properties
server.port=2020
2) application.yml
server:
port : 2020
3) Изменить порт сервера программно
3.1) Реализация интерфейса WebServerFactoryCustomizer - Spring 2.x
@Component
public class MyTomcatWebServerCustomizer implements WebServerFactoryCustomizer<TomcatServletWebServerFactory> {
@Override
public void customize(TomcatServletWebServerFactory factory) {
// customize the factory here
factory.setPort(2020);
}
}
3.2) Реализация интерфейса EmbeddedServletContainerCustomizer - Spring 1.x
@Component
public class CustomizationBean implements EmbeddedServletContainerCustomizer {
@Override
public void customize(ConfigurableEmbeddedServletContainer container) {
// customize here
container.setPort(2020);
}
}
4) Используя опцию командной строки
java -jar spring-boot-app.jar -Dserver.port=2020
Как все говорили, вы можете указать в application.properties
server.port = 9000 (может быть любым другим значением)Если вы используете пружинный привод в своем проекте, по умолчанию он указывает на
8080, и если вы хотите изменить его, то в application.properties упомяните
management.port = 9001 (может быть любым другим значением)
В application.properties
файл, добавьте эту строку:
server.port = 65535
где разместить этого тьфу:
24.3. Файлы свойств приложения
SpringApplication загружает свойства из файлов application.properties в следующих местах и добавляет их в среду Spring:
A /config subdirectory of the current directory The current directory A classpath /config package The classpath root
Список упорядочен по приоритету (свойства, определенные в местоположениях выше в списке, переопределяют свойства, определенные в нижних местоположениях).
В моем случае я положил его в каталог, где jar
файл стоит.
От:
https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/
По умолчанию spring-boot предоставляет встроенный сервер tomcat, который работает под номером порта 8080. Если вам нужно изменить номер порта приложения, перейдите в файл application.properties и настройте номер порта с помощью свойства server.port.
server.port= 9876
тогда ваше приложение работает под портом 9876.
Действительно, самый простой способ - установить свойство server.port.
Если вы используете STS в качестве IDE, с версии 3.6.7 у вас фактически есть Spring Properties Editor для открытия файла свойств.
Этот редактор предоставляет автозаполнение для всех свойств Spring Boot. Если вы напишите порт и нажмете CTRL + SPACE, server.port будет первым вариантом.
Надеюсь, это поможет
application.properties=> server.port=8090 application.yml=> сервер порт:8090
Использование свойства server.port=8080, например, как упомянуто в других ответах, определенно является подходящим вариантом. Просто хотел упомянуть, что вы также можете выставить свойство среды:
SERVER_PORT=8080
Так как пружинный багажник способен заменить "." для "_" и ниже в верхнем регистре для переменных среды в последних версиях. Это особенно полезно в контейнерах, где все, что вам нужно сделать, это определить эту переменную среды без добавления / редактирования application.properties
или передача системных свойств через командную строку (т.е. -Dserver.port=$PORT
)
Просто есть application.properties
в src/main/resources
проекта и дать там
server.port=****
где ****
относится к номеру порта.
Указание номера порта в файле application.properties решит проблему
server.port = 8080
"порт зависит от вашего выбора, где вы хотите разместить приложение"
1.1 Обновление через файл свойств.
/src/main/resources/application.properties
server.port = 8888
Обновление через файл yaml.
server:
port: 8888
EmbeddedServletContainerCustomizer
@Component
public class CustomContainer implements EmbeddedServletContainerCustomizer {
@Override
public void customize(ConfigurableEmbeddedServletContainer container) {
container.setPort(8888);
}
}
Вы можете добавить порт следующими способами.
Выполнить -> раздел Конфигурации
В
application.xml
добавлятьserver.port=XXXX