Как настроить порт для приложения Spring Boot

Как настроить порт TCP / IP, прослушиваемый приложением Spring Boot, чтобы он не использовал порт по умолчанию 8080.


person Paul Verest    schedule 13.01.2014    source источник
comment
Если кому-то интересно, здесь показано, как иметь несколько портов - stackoverflow.com/questions/36357135/   -  person Betlista    schedule 08.02.2018
comment
если вы используете файл yml для конфигурации, вы можете использовать этот сервер: порт: 8081 Также аннотируйте основной класс как @SpringBootApplication и удалите @ EnableAutoConfiguration   -  person Keaz    schedule 23.06.2018
comment
ваш проект [application.properties] для добавления server.port = 8080   -  person Lahiru Samishka    schedule 08.10.2019
comment
установите server.port=8080 в свойствах приложения. эта конфигурация находится в ServerProperties.class классе под org.springframework.boot.autoconfigure.web.   -  person Atif    schedule 11.03.2020


Ответы (56)


Как указано в документации либо установите server.port как системное свойство, используя параметр командной строки для jvm -Dserver.port=8090, либо добавьте application.properties в /src/main/resources/ с помощью

server.port=8090

Для случайного использования порта

server.port=0

Аналогичным образом добавьте application.yml в /src/main/resources/ с

server:
  port : 8090
person Paul Verest    schedule 13.01.2014
comment
Когда используется случайный порт, информация о порте может быть получена с помощью @Value("${local.server.port}") - person azizunsal; 23.07.2015
comment
В качестве дополнения к этому ответу: согласно spring docs есть другие пути, по которым вы можете добавить application.properties. В моем случае это очень помогло. - person sargas; 02.10.2015
comment
-Dserver.port = XXXX у меня не работал. Я использовал режим переменной среды ОС: $ SERVER_PORT=8090 java -jar <path/to/my/jar> - person Soumya Kanti; 08.10.2015
comment
Также стоит отметить, что раз уж вы так, это будет иметь значение только локально. После того, как вы развернете это приложение на сервере, server.port = 8080 будет проигнорирован. - person Mike3355; 26.04.2016
comment
java -jar <my.jar> --server.port=8090 работает весной 1.4.0 - person rzymek; 13.09.2016
comment
Оба (1) java -Dserver.port=XXXX -jar <path/to/my/jar> и (2) java -jar <path/to/my/jar> --server.port=YYYY работают. Первая команда определяет server.port системное свойство, а вторая команда передает свойство через аргументы командной строки (String... args в методе main). Более того, если вы работаете с java -Dserver.port=XXXX -jar <path/to/my/jar> --server.port=YYYY, YYYY имеет приоритет над XXXX, поэтому внешняя конфигурация Spring Boot так очаровательна. - person tan9; 29.11.2016
comment
Множество способов изменить порт в Spring Boot tomcat javabycode.com/spring-framework-tutorial/spring-boot-tutorial/ - person David Pham; 16.11.2017
comment
src / resources / application.properties server.port = 8080 или - person Yogesh Borkhade; 19.01.2018
comment
Вы можете установить свойство server.port разными способами. Просмотрите документацию по конфигурации для весенней загрузки и найдите решение, которое вам подходит: docs.spring.io/spring-boot/docs/current/reference/html/ - person jorgen.ringen; 28.01.2018
comment
Если вы предпочитаете maven, сделайте это mvn spring-boot:run -Dserver.port=8888 - person old-monk; 12.04.2018
comment
application.yaml также можно использовать вместо свойств. - person chethu; 09.03.2019
comment
-Dserver.port не работал, но --server.port работал. Также его следует передать команде java -jar, а не mvn. Так, например, после создания проекта с использованием mvn вы выполняете java -jar artifact.jar --server.port = 9099, чтобы запустить сервер на другом для порта - person velocity; 03.09.2020

Есть два основных способа изменить порт во встроенном Tomcat в приложении Spring Boot.

Измените application.properties

Сначала вы можете попробовать файл application.properties в папке / resources:

server.port = 8090

файл application.properties

Измените параметр ВМ

Второй способ, если вы не хотите изменять какие-либо файлы и не проверять то, что вам нужно только на вашем локальном компьютере, вы можете использовать vm arg:

Перейти к выполнению -> Изменить конфигурации -> Параметры виртуальной машины

-Dserver.port=8090

Изменить порт с помощью vm arg

Кроме того, если вам нужна дополнительная информация, вы можете просмотреть следующую запись в блоге здесь: Изменение порта в приложении Spring Boot

person anataliocs    schedule 14.05.2015
comment
В STS 4 это выполняется - ›конфигурации запуска -› main, затем прокрутите вниз до таблицы с именем параметра и значением. - person serv-inc; 28.04.2019

Поскольку Spring Boot предоставляет различные механизмы экстернализации конфигурации (с помощью различных PropertySource реализаций и / или процессоров, подключенных к Environment объекту по порядку), вы можете установить любое свойство вне вашего jar-архива с помощью следующих методов :

  1. Передайте свойство через аргумент командной строки как аргумент приложения

    java -jar <path/to/my/jar> --server.port=7788
    
  2. Из свойства в 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}'
      
  3. Определите системное свойство JVM

    java -Dserver.port=7788 -jar <path/to/my/jar>
    
  4. Определите переменную среды ОС

    • Оболочка U * IX

      SERVER_PORT=7788 java -jar <path/to/my/jar>
      
    • Окна

      SET SERVER_PORT=7788
      java -jar <path/to/my/jar>
      
  5. Поместите свойство в ./config/application.properties файл конфигурации

    server.port=7788
    

    и запустите:

     java -jar <path/to/my/jar>
    
  6. Поместить недвижимость в ./config/application.yaml

    server:
        port: 7788
    

    и запустите:

     java -jar <path/to/my/jar>
    
  7. Поместить недвижимость в ./application.properties

    server.port=7788
    

    и запустите:

     java -jar <path/to/my/jar>
    
  8. Поместить недвижимость в ./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.

person tan9    schedule 29.11.2016

Также вы можете настроить порт программно.

Для Spring Boot 2.x.x:

@Configuration
public class CustomContainer implements WebServerFactoryCustomizer<ConfigurableServletWebServerFactory> {
  public void customize(ConfigurableServletWebServerFactory factory){
    factory.setPort(8042);
  }
}

Для более старых версий:

@Configuration
public class ServletConfig {
    @Bean
    public EmbeddedServletContainerCustomizer containerCustomizer() {
        return (container -> {
            container.setPort(8012);
        });
    }
}
person makerj    schedule 03.11.2015
comment
Это работает и очень полезно, когда у вас есть порт в вашем собственном файле конфигурации и вы хотите установить его во время выполнения. - person Xdg; 08.11.2015
comment
Это было полезно, когда мне нужно было развернуть приложение в сервисе AWS Elastic Beanstalk, чтобы получить порт из переменной среды. - person Martin Hansen; 19.11.2015
comment
Это очень полезно, когда все, что вам нужно, - это автономный тестовый модуль или интеграционный тест +1. - person Priidu Neemre; 28.04.2016
comment
Очень полезно, когда переменная env для порта уже определена под другим именем. - person higuaro; 18.08.2016
comment
Разве это не @Configuration вместо @Controller? Пожалуйста, обновите, если это так. - person Lucky; 13.09.2016
comment
Он должен быть @Configuration, но если вы импортируете его с помощью @Import, он работает, не уверен, работает ли он с автоматическим поиском конфигурации. - person kap; 23.03.2017
comment
Для новичка: я попытался создать файл PortConfiguration.java в папке пакета и вставил этот код сюда. Однако я получаю сообщение об ошибке из кода VS: конфигурация не может быть преобразована в тип. Какие-либо предложения? - person PeMa; 02.03.2018
comment
интересно, я не знал, что это можно сделать программно. Спасибо за информацию - person Heybat; 18.12.2020

Вы можете установить порт в 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

Или в application.properties:

server.port=9999

Или как параметр командной строки:

-Dserver.port=9999
person ayurchuk    schedule 17.03.2016
comment
Использование HashMap будет работать, только если порт не установлен в application.properties или .yml. - person Milgo; 25.04.2019

Если вы хотите запустить его локально, используйте это -

mvn spring-boot:run -Drun.jvmArguments='-Dserver.port=8085'

Начиная с Spring Boot 2.0, вот команда, которая работает (подсказки были здесь):

mvn spring-boot:run -Dspring-boot.run.arguments=--server.port=8085
person itwarilal    schedule 15.04.2016
comment
Начиная с Spring Boot 2, вы должны использовать spring-boot.run.jvmArguments. - person mapm; 12.04.2018

Если вы используете application.yml, добавьте к нему следующие строки

server:
     port: 9000

и, конечно же, 0 для случайного порта.

person gatolgaj    schedule 03.12.2014
comment
это, похоже, не сработало. Я использовал server.port в application.yml, и он работал - person yathirigan; 05.03.2015

Как объясняется в Документация Spring, есть несколько способов сделать это:

Либо вы устанавливаете порт в командной строке (например 8888)

-Dserver.port=8888 or --server.port=8888

Пример: java -jar -Dserver.port=8888 test.jar

Или вы устанавливаете порт в application.properties

server.port=${port:4588}

или (в application.yml с синтаксисом yaml)

server:
   port: ${port:4588}

Если порт, переданный -Dport (или -Dserver.port), установлен в командной строке, то этот порт будет учтен. В противном случае порт по умолчанию будет 4588.

Если вы хотите принудительно использовать порт в файле свойств независимо от переменной среды, вам просто нужно написать:

server.port=8888
person OlivierTerrien    schedule 21.01.2017

Включить свойство ниже в application.properties

server.port=8080
person Chandramouli    schedule 18.10.2016

Если вам нужен программный способ сделать это, вы можете установить его во время запуска:

System.getProperties().put( "server.port", 80 );
SpringApplication.run(App.class, args);

Это может помочь для таких вещей, как порт, зависящий от среды. Хорошего дня

person Luis Mauricio    schedule 03.04.2016
comment
System.setProperty("server.port", 80); - еще один способ добиться того же. - person hd1; 11.02.2017
comment
@ hd1, я добавил наши ответы к основному ответу, проверьте его и измените по своему усмотрению, пожалуйста - person Luis Mauricio; 30.12.2019

Вы можете указать порт, переопределив bean-компонент EmbeddedServletContainerFactory в своей конфигурации (на основе Java или XML). Здесь вы можете указать порт для используемого встроенного контейнера сервлетов. См. Раздел Spring Boot - Core «Поддержка встроенного контейнера сервлетов» и пример есть. Надеюсь это поможет.

person nndru    schedule 13.01.2014
comment
Прямая ссылка: docs.spring. io / spring-boot / docs / current-SNAPSHOT / ссылка / - person Erik Martino; 13.11.2014
comment
Вот текущая ссылка на раздел программного переопределения: docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/ - person jocull; 14.06.2018

В application.properties файле в ресурсах:

server.port=8082
person Amit Gujarathi    schedule 24.04.2017

Чтобы расширить другие ответы:

В документации для тестирования есть раздел, в котором объясняется, как настроить порт для интеграционных тестов:


При интеграционных тестах конфигурация порта выполняется с использованием значений аннотации @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() {
    }

}
person Pau    schedule 29.05.2017

если вы используете gradle в качестве инструмента сборки, вы можете установить порт сервера в файле application.yml как:

server:
  port: 8291

Если вы используете maven, порт можно указать в файле application.properties как:

server.port: 8291
person VSharma    schedule 24.10.2019
comment
для application.properties это server.port = 8291 - person iQuestProgrammer; 05.12.2019
comment
Какое отношение имеют Maven и Gradle к тому, используете ли вы свойства или файл YAML? Процесс сборки (Maven) полностью отличается от фреймворка приложения (Spring Boot). - person SeverityOne; 03.06.2021

Это можно сделать тремя способами, в зависимости от используемого файла конфигурации приложения.

а) Если вы используете набор файлов application.properties

server.port = 8090

б) Если вы используете файл application.yml, установите свойство порта сервера в формате YAML, как указано ниже.

server:
     port: 8090

c) Вы также можете установить это свойство как системное свойство в основном методе.

System.setProperty("server.port","8090");
person Praneeth    schedule 15.10.2018

Есть много других вещей, которые вы можете изменить в конфигурации сервера, изменив application.properties. Как время ожидания сеанса, адрес и порт и т. Д. См. Сообщение ниже

ref: 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
person Deepesh kumar    schedule 26.01.2018

  1. Как все говорили, вы можете указать в application.properties
    server.port = 9000 (может быть любое другое значение)

  2. Если вы используете в своем проекте пружинный привод, по умолчанию он указывает на
    8080, и если вы хотите его изменить, то в application.properties укажите
    management.port = 9001 ( может быть любое другое значение)

person Rakesh    schedule 29.09.2015

Добавьте это в свой application.properties файл

server.port= 8080
person Sridhar Battala    schedule 17.06.2016
comment
Добро пожаловать в SO :-), пожалуйста, посмотрите Как ответить - person JimHawkins; 17.06.2016
comment
Зачем через год добавлять такой же ответ?!? и server.port 8080 неверный синтаксис для файла свойств Java ... - person Betlista; 08.02.2018

В файле 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/#boot-features-external-config-application-property-files

person ZhaoGang    schedule 20.12.2018

По умолчанию приложение для загрузки Spring запускается со встроенным сервером 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
person anandchaugule    schedule 26.04.2019

По умолчанию модуль spring-web предоставляет встроенный сервер tomcat, который работает под номером порта 8080. Если вам нужно изменить номер порта приложения, перейдите в файл application.properties и настройте номер порта с помощью свойства server.port.

  server.port= 9876

тогда ваше приложение работает под портом 9876.

person NafazBenzema    schedule 14.05.2020

Действительно, самый простой способ - установить свойство server.port.

Если вы используете STS в качестве IDE, начиная с версии 3.6.7 у вас есть Spring Properties Editor для открытия файла свойств.

Этот редактор обеспечивает автозаполнение для всех свойств Spring Boot. Если вы напишете порт и нажмете CTRL + SPACE, server.port будет первым вариантом.

person Adrian Cosma    schedule 15.12.2015
comment
Или также, если вы используете Intellij IDEA, автозаполнение тоже работает. ;) - person Lucky; 13.09.2016

Использование свойства server.port = 8080, например, как упоминалось в других ответах, определенно подходит. Просто хотел упомянуть, что вы также можете предоставить свойство среды:

SERVER_PORT=8080

Так как пружинный пыльник может заменить "." для "_" и ниже до ВЕРХНЕГО регистра для переменных среды в последних версиях. Это особенно полезно в контейнерах, где все, что вам нужно сделать, это определить эту переменную среды без добавления / редактирования application.properties или передачи системных свойств через командную строку (например, -Dserver.port=$PORT)

person Ulises    schedule 29.07.2016

Надеюсь, это поможет

application.properties=> 

server.port=8090

application.yml=> 

server
  port:8090
person Sagar Mal Shankhala    schedule 18.05.2018
comment
application.yml = ›сервер: порт: 8090 - person geek; 23.05.2018

Если указать номер порта в файле application.properties, проблема будет решена.

 server.port = 8080

"порт зависит от вашего выбора, где вы хотите разместить приложение"

person Ashwini    schedule 15.10.2018

Вы можете добавить порт следующими способами.

  1. Выполнить -> Раздел "Конфигурации"

  2. В application.xml добавить server.port=XXXX

person gkarthiks    schedule 02.02.2016
comment
Вы имеете в виду application.yml и какую IDE вы используете? Пожалуйста, будьте конкретны. - person Lucky; 13.09.2016

Вы можете установить это в application.properties в / src / main / resources /

server.port = 8090
person Abhijeet    schedule 13.05.2016

Просто внесите application.properties в src/main/resources проекта и дайте там

server.port=****

где **** относится к номеру порта.

person Shubham Khurana    schedule 02.07.2017

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);

    }

}
person Buddhika Lakshan    schedule 28.08.2017

Вы также можете использовать переменную среды SERVER_PORT для настройки порта загрузки Spring. Просто установите переменную среды и перезапустите приложение:

set SERVER_PORT=9999 // on windows machine
export SERVER_PORT=9999 // on linux

Обратите внимание, что если вы не устанавливаете эти переменные среды для всей системы, вам следует запустить загрузочное приложение в том же сеансе.

person Ali Dehghani    schedule 26.04.2016

В основном springboot работает на port:8080 из-за встроенного Tomcat. В некоторых может выдать ошибку port 8080 already in use. Чтобы избежать подобных проблем, мы можем настроить порт сервера.

Использование application.properties

добавить server.port=9898

В конфигурации времени выполнения

запустите приложение с указанными ниже аргументами.

spring-boot:run -Drun.jvmArguments='-Dserver.port=8081'

person Mohanraj    schedule 16.08.2017

Вы можете настроить свой порт в файле application.properties в папке ресурсов вашего проекта весенней загрузки.

server.port="port which you need"
person Automator1992    schedule 23.03.2017

Просто установите переменную среды SERVER_PORT.
(Примеры работают на Linux)

  • Начать через java -jar:
    SERVER_PORT=9093 java -jar target/eric-sc-dummy.jar

  • Запустите через плагин maven spring -boot:
    SERVER_PORT=9093 mvn spring-boot:run

Подсказки:

  • Если вы добавляете другие подкоманды перед командой java -jar или mvn, тогда вам нужно добавить export, чтобы установить env в отдельной команде, и разделить их через ;, чтобы убедиться, что он доступен для подпроцесса.
    например:
    export SERVER_PORT=9093; export MAVEN_OPTS="-Xmx256m -Xms64m"; mvn spring-boot:run
person user218867    schedule 03.07.2020

"server.port = 8080" будет работать, только если ваше приложение запущено как jar через основной метод,

Эта конфигурация не будет работать, если вы запустите это приложение как военный файл через контейнер Tomcat.

person mujeeb rahman    schedule 16.09.2016

Если вы собираетесь запускать приложения как файл jar в командной среде, просто введите «SERVER_PORT = ***» в качестве префикса. Полная команда для выполнения будет выглядеть, как показано ниже:

SERVER_PORT=8080 java -jar ***.jar

Если вы хотите запустить приложение в Linux в фоновом режиме, команда с nohup будет выглядеть так:

SERVER_PORT=8080 nohup java -jar ***.jar &
person Rong.l    schedule 25.11.2016

Есть три способа сделать это

1 Установите свойство server.port в application.properties файле

server.port = 8090

2 Установите свойство порта сервера в application.yml файле

server:
     port: 8090

3 Установите свойство как системное свойство в main методе

System.setProperty("server.port","8090");
person Amandeep Singh    schedule 29.05.2017

Помимо всех ответов, я хотел бы указать, что в большинстве IDE (IntelliJ с плагином Spring, STS) есть функция, в которой предлагаются все ключи конфигурации, поддерживаемые SpringBoot. (т.е. все самоуверенные ключевые слова конфигурации)

введите здесь описание изображения

Плагин Spring для Intellij

person Sudip Bhandari    schedule 28.06.2019

Вы можете настроить порт в файле application.property или application.yaml, который находится в src / main / resources.

server.port = 8080

введите описание изображения здесь

person Duleepa Wickramasinghe    schedule 17.10.2020

Серверный порт объявляют в двух типах

1. статический тип

   server.port=8080. // your port number
  1. Динамический тип

     server.port=0.      // randomly generate port number. 
     server.port=${PORT:0}
    
person Pandiyan MCA    schedule 05.12.2020
comment
Почему за портом «8080» стоят точки? и «0». ? - person Dirk Schumacher; 29.05.2021

По умолчанию модуль Spring-web предоставляет встроенный сервер tomcat, работающий на порту 8080.

Вы можете изменить его следующим образом -

A) Если вы используете gradle, используйте свойство, которое можно установить в вашем application.yml:

 server:  
      port: 8042

Б) Если вы используете maven, вы можете установить свойство в своем application.properties:

server.port: 8042

C) Когда у вас есть порт в вашем собственном файле конфигурации и вы хотите установить его во время выполнения.

Путем реализации интерфейса WebServerFactoryCustomizer - Spring 2.x

@Component
public class MyTomcatWebServerCustomizer implements WebServerFactoryCustomizer<TomcatServletWebServerFactory> {

    @Override
    public void customize(TomcatServletWebServerFactory factory) {
        // customize the factory here
        factory.setPort(8042);
    }
}

Путем реализации интерфейса EmbeddedServletContainerCustomizer - Spring 1.x

@Component
public class CustomizationBean implements EmbeddedServletContainerCustomizer {

    @Override
    public void customize(ConfigurableEmbeddedServletContainer container) {
        // customize here
        container.setPort(8042);
    }
}
person Ishan Garg    schedule 16.05.2021

Порт по умолчанию: 8080, но мы можем настроить номер порта в application.properties, как показано ниже.

spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
server.port = 5050 -- #here we can give any port number.
person Lova Chittumuri    schedule 01.03.2017

Этот вопрос является первым результатом при поиске в Google Gradle Spring Port.

Если вы используете gradle, вы можете сделать что-то вроде этого, если у вас уже применен плагин Spring Boot Gradle:

bootRun {
    args += ["--server.port=[PORT]"]
}

Более подробный ответ см. В моем ответе здесь.

person Maurice Müller    schedule 09.11.2017

Если вы работаете над загрузочными проектами и хотите настроить порт, вы можете указать ввод в файле application.properties, например ПРИМЕЧАНИЕ: файл свойств должен находиться в src / main / resource.

Свойства пружины

server.port = 9999. Если вы используете CMD, выполните следующую команду: -Dserver.port = 9999. Для порта по умолчанию используется его server.port = 0. Убедитесь, что этот порт не используется. номер порта

person saravanan    schedule 10.11.2017

Подобно https://stackoverflow.com/a/36865796/1587329 и https://stackoverflow.com/a/40799750/1587329, однострочник gradle будет

SERVER_PORT=9090 gradle bootRun
person serv-inc    schedule 18.04.2019

В свойствах приложения просто добавьте 1 строку

server.port = 8090
person Joyson Rego    schedule 18.05.2019
comment
это дублированный ответ - person nikiforovpizza; 12.06.2019

Программно, с пружинным чехлом 2.1.5:

import org.springframework.boot.web.server.WebServerFactoryCustomizer;
import org.springframework.boot.web.servlet.server.ConfigurableServletWebServerFactory;
import org.springframework.stereotype.Component;

@Component
public class CustomizationBean implements WebServerFactoryCustomizer<ConfigurableServletWebServerFactory> {

    @Override
    public void customize(ConfigurableServletWebServerFactory server) {
        server.setPort(9000);
    }

}
person Niel de Wet    schedule 30.08.2019

Используя командную строку оболочки mvn, spring-boot 2:

mvn spring-boot:run -Dspring-boot.run.jvmArguments='-Dserver.port=8085'
person Ady Junior    schedule 25.02.2021

Это сработало для меня:

Добавлен собственный класс контейнера:

@Component
public class CustomContainer implements EmbeddedServletContainerCustomizer {

    @Override
    public void customize(ConfigurableEmbeddedServletContainer configurableEmbeddedServletContainer) {
       configurableEmbeddedServletContainer.setPort(8888);
    }

}

Но он все еще не использовал порт 8888.

Затем я устанавливаю свойство scanBasePackages, подобное этому, в классе «@SpringBootApplication» в моем основном методе: (scanBasePackages = {"custom container package"})

@SpringBootApplication(scanBasePackages = {"com.javabrains.util"})
public class CourseApiApp {

    public static void main (String args []) {
        SpringApplication.run(CourseApiApp.class, args);
    }
}

И он начал собирать набор портов в Custom Container.

person S'chn T'gai Spock    schedule 31.07.2017

При весенней загрузке вы можете легко настроить порт доступа к сервису в application.properties файле.

server.port=portnumber

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

person Anushka Ekanayake    schedule 14.09.2017

если ваш номер порта может быть случайным, вы можете использовать случайную функцию в своем application.properties server.port=${random.int(4)}

person Devilluminati    schedule 04.06.2019
comment
Я не могу придумать сценарий, в котором вы хотели бы иметь случайный номер порта - person Sudip Bhandari; 28.06.2019

server.port = 0 для случайного порта

server.port = 8080 для пользовательского порта 8080

person Jijo    schedule 26.06.2019

в файле application.properties добавьте следующее: server.port = 8888 НЕОБХОДИМАЯ ЗАЩИТА ВСЕГДА УКАЗАНО ЗДЕСЬ

person Hilal Aissani    schedule 09.04.2020

Настройте сведения о порте в файле конфигурации или в свойствах приложения.

e.g.

port =8876
person suveer    schedule 05.08.2020

поместите этот код в файл u applicationatop.properties
 введите описание изображения здесь

person Braiek Aymen    schedule 19.01.2021

Если вы используете интерфейс командной строки (CLI) Spring, используйте -- для отделения команд от аргументов команды spring, чтобы изменить порт:

spring run hello.groovy -- --server.port=9000

Spring-boot cli

person Maske    schedule 21.01.2021

В моем случае добавление заявления

server.port=${port:8081}

переопределить порт сервера Tomcat по умолчанию.

person Mercurial    schedule 26.04.2016