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

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

+708
источник поделиться
48 ответов
  • 1
  • 2

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

server.port=8090

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

server.port=0
+1100
источник

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

Изменить application.properties

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

server.port = 8090

application.properties file

Изменить вариант виртуальной машины

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

Перейдите в "Выполнить" → "Редактировать конфигурации" → "Параметры виртуальной машины".

-Dserver.port=8090

Change port with a vm arg

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

+175
источник
другие ответы

Связанные вопросы


Похожие вопросы

Поскольку 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 Shell

      SERVER_PORT=7788 java -jar <path/to/my/jar>
      
    • Windows

      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.

+127
источник

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

@Configuration
public class ServletConfig {
    @Bean
    public EmbeddedServletContainerCustomizer containerCustomizer() {
        return (container -> {
            container.setPort(8012);
        });
    }
}
+96
источник

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

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

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

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

mvn spring-boot:run -Dspring-boot.run.arguments=--server.port=8085
+57
источник

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

server:
     port: 9000

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

+44
источник

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

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

-Dserver.port=8888 или --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
+39
источник

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

server.port=8080
+33
источник

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

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

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

+18
источник

Вы можете указать порт, переопределив EmbeddedServletContainerFactory bean в своей конфигурации (java based или xml). Там вы можете указать порт для используемого встроенного контейнера сервлета. Пожалуйста, см. Spring Boot-Core "Поддержка встроенного сервлет-контейнера" и пример. Надеюсь, это поможет.

+15
источник

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

server.port=8082
+15
источник

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

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


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

}
+14
источник

При запуске приложения загрузки spring встроенный сервер, такой как Tomcat, начинается с порта по умолчанию. По умолчанию встроенный tomcat начинается с порта 8080. Существует много способов изменить порт сервера по умолчанию.

Использование файла свойств (.properties/.yml)

Чтобы изменить порт сервера с использованием файла свойств, нам нужно настроить свойство server.port.

а. Использование application.properties в пути к классам, например ЦСИ\главная\ресурсы\application.properties

server.port = 8585

Сервер начнет работу с порта 8585. Чтобы получить случайный порт сервера, присвойте 0 свойству.

server.port = 0

Теперь spring boot запустит сервер на порту, который в настоящее время не используется сервером в системе.

б. Использование application.yml в пути к классам, например ЦСИ\главная\ресурсы\application.yml.

server:
  port: 8585 

Сервер начнет с порта 8585.

Для случайного порта назначьте 0.

server:
  port: 0 

Использование команды java с --server.port или -Dserver.port

Предположим, что у нас есть исполняемый JAR с именем my-app.jar, а затем при запуске приложения загрузки spring с помощью 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 в Short

Чтобы сделать --server.port и -Dserver.port коротким, мы можем удалить ключевое слово сервера и сделать его ключевым словом, таким как -port и -Dport. Мы можем использовать любое короткое ключевое слово. Здесь мы используем порт как короткое ключевое слово. Чтобы достичь этого, нам нужно настроить placeholder в файле свойств следующим образом.

Использование 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 Programmatically

SpringApplication имеет метод setDefaultProperties(), который используется для изменения свойств загрузки по умолчанию spring. Предположим, мы хотим изменить порт по умолчанию, тогда нам нужно создать карту и поместить порт с ключом 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);
        }     
} 

Spring boot запустит сервер с портом 8585.

+14
источник

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

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

server.port = 8090

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

server:
     port: 8090

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

System.setProperty("server.port","8090");
+14
источник

Есть много других вещей, которые вы можете изменить в конфигурации сервера, изменив 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
+11
источник

В файле 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

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

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

+9
источник

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

server.port= 8080
+9
источник

По умолчанию приложение весенней загрузки запускается со встроенного сервера 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
+8
источник

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

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

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

+7
источник

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

SERVER_PORT=8080

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

+7
источник

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

application.properties=> 

server.port=8090

application.yml=> 

server
  port:8090
+7
источник

Указание номера порта в файле application.properties решит проблему

 server.port = 8080

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

+7
источник

Вы можете настроить порт в файле application.properties
server.port=8090

ИЛИ

во время выполнения вы можете использовать командную строку arg
-Dserver.port=8090

+6
источник

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

server.port=****

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

+6
источник

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

    }

}
+6
источник

Вы можете добавить порт ниже.

  • Выполнить → раздел Конфигурации

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

+5
источник

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

server.port = 8090
+5
источник

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

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

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

+4
источник
  • 1
  • 2

Посмотрите другие вопросы по меткам или Задайте вопрос