[java] 스프링 부트 애플리케이션 용 포트를 구성하는 방법

Spring Boot 애플리케이션이 청취하는 TCP / IP 포트를 구성하여 기본 포트 8080을 사용하지 않는 방법.



답변

로이 문서에서 말했다 중 하나를 설정 server.portJVM에 명령 줄 옵션을 사용하여 시스템 속성으로 -Dserver.port=8090또는 추가 application.properties/src/main/resources/

server.port=8090

임의 포트 사용

server.port=0


답변

스프링 부트 애플리케이션의 Embedded Tomcat에서 포트를 변경하는 주요 방법은 두 가지가 있습니다.

application.properties 수정

먼저 / resources 폴더에서 application.properties 파일을 시도 할 수 있습니다.

server.port = 8090

application.properties 파일

VM 옵션 수정

두 번째 방법은 파일을 수정하거나 로컬에서만 필요한 것을 체크인하지 않으려면 vm arg를 사용할 수 있습니다.

실행-> 구성 편집-> VM 옵션으로 이동하십시오.

-Dserver.port=8090

vm arg로 포트 변경

또한 자세한 정보가 필요하면 여기에서 다음 블로그 게시물을 볼 수 있습니다 . Spring Boot 응용 프로그램에서 포트 변경


답변

Spring Boot는 (다양한 구현 및 / 또는 객체에 순서대로 연결된 프로세서를 통해) 다양한 구성 외부화 메커니즘을 제공하므로 다음 방법을 통해 jar 아카이브 외부 의 모든 속성을 설정할 수 있습니다 .PropertySourceEnvironment

  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. OS 환경 변수 정의

    • 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_NAMEserver.name변환에 의해 이루어졌다 편안한 바인딩 .


답변

또한 프로그래밍 방식으로 포트를 구성 할 수 있습니다

@Configuration
public class ServletConfig {
    @Bean
    public EmbeddedServletContainerCustomizer containerCustomizer() {
        return (container -> {
            container.setPort(8012);
        });
    }
}


답변

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


답변

로컬로 실행하려면 다음을 사용하십시오.

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

현재 봄 부팅 2.0 , 여기에 명령의 그 작품 (단서가 있었다 여기 )

mvn spring-boot:run -Dspring-boot.run.arguments=--server.port=8085


답변

사용 application.yml하는 경우 다음 줄을 추가하십시오

server:
     port: 9000

물론 임의의 포트의 경우 0입니다.