programing

Spring Boot 응용 프로그램용 포트 설정 방법

kingscode 2022. 7. 15. 22:18
반응형

Spring Boot 응용 프로그램용 포트 설정 방법

Spring Boot 어플리케이션이 수신하는 TCP/IP 포트를 설정하여 기본 포트 8080을 사용하지 않도록 하려면 어떻게 해야 합니까?

docs에서 설명한 바와 같이,server.port property to jvm jvm as as as as as 。-Dserver.port=8090 「」를 추가합니다.application.properties/src/main/resources/ 함께

server.port=8090

랜덤 포트용

server.port=0

로 「」를 추가합니다.application.yml/src/main/resources/ 함께

server:
  port : 8090

Spring Boot Application에서 Embedded Tomcat 포트를 변경하는 방법은 크게 두 가지가 있습니다.

application.properties를 변경합니다.

먼저 /resources 폴더에서 application.properties 파일을 사용해 보십시오.

server.port = 8090

application.properties 파일

VM 옵션 수정

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

[파일명을 지정하여 실행]-> [설정 편집]-> [VM 옵션]으로 이동합니다.

-Dserver.port=8090

VM arg를 사용하여 포트 변경

또, 상세한 것에 대하여는, 다음의 블로그 투고를 참조해 주세요:Spring Boot Application 의 포토를 변경합니다.

Spring Boot은 다양한 구성 외부화 메커니즘을 제공하므로(다양한 기능을 통해)PropertySource「」에 및 .Environmentobject in order)는 다음 방법을 사용하여 jar 아카이브 외부의 속성을 설정할 수 있습니다.

  1. 명령줄 인수를 통해 속성을 응용 프로그램 인수로 전달합니다.

    java -jar <path/to/my/jar> --server.port=7788
    
  2. ★★★★★의 SPRING_APPLICATION_JSON1.스프링 부트 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_NAME로로 합니다.server.name변환은 완화 바인딩에 의해 수행되었습니다.

또, 포토를 프로그래밍 방식으로 설정할 수도 있습니다.

스프링 부트 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);
        });
    }
}

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'

Spring Boot 2.0에서는 다음 명령어를 사용할 수 있습니다(이 명령어는 다음과 같습니다).

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

★★★★★★★★★★★★★★★★를 사용하고 있는 경우application.yml에 다음

server:
     port: 9000

랜덤 포트의 경우는, 물론 0 입니다.

Spring 매뉴얼에서 설명한 바와 같이 여기에는 몇 가지 방법이 있습니다.

명령줄에서 포트를 설정하거나(예를 들어 8888)

-Dserver.port=8888 ★★★★★★★★★★★★★★★★★」--server.port=8888

::java -jar -Dserver.port=8888 test.jar

또는 application.properties에서 포트를 설정합니다.

server.port=${port:4588}

또는 (aml 구문을 사용하는 application.yml에서)

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

이것은 환경 의존 포트와 같은 경우에 도움이 될 수 있습니다.좋은 하루 되세요.

기타 답변을 확장하려면:

테스트용 문서에는 연동 테스트에서 포트를 설정하는 방법에 대해 설명하는 섹션이 있습니다.


테스트에서는, 포토 은, 「」라고 하는 .@SpringBootTestwebEnvironment★★★★★★ 。


랜덤 포트:

@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")정의된 다른 값을 덮어씁니다.
  • 않으면, 이 if if 、 음 、 음 、 음 、 음 、 if 、 if 、 if 、 if if 。src/test/resources/application.properties(일부러)
  • 되어 있지 않은 인 "Default"로 합니다.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

는, 「포토」를 오버라이드 하는 할 수 .EmbeddedServletContainerFactory설정내의 bean(표준 베이스 또는 xml).여기서 사용된 임베디드 서블릿 컨테이너의 포트를 지정할 수 있습니다.Spring Boot - Core "Embedded Servlet Container Support" 단락 및 예제를 참조하십시오.이게 도움이 됐으면 좋겠다.

»application.properties내에 : " " " "

server.port=8082

사용 중인 애플리케이션 구성 파일에 따라 세 가지 방법이 있습니다.

a) application.properties 파일세트를 사용하는 경우

server.port = 8090

b) application.yml file set server port 속성을 다음과 같이 YAML 형식으로 사용하는 경우

server:
     port: 8090

c) 메인 메서드에서 속성을 시스템 속성으로 설정할 수도 있습니다.

System.setProperty("server.port","8090");

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
  1. 가 말했듯이에서 application.properties를 할 수 .
    server.port = 9000(다른 값일 수 있음)

  2. 으로는 스프링 액튜에이터가 가리키고.
    에 이라고 기재되어 .
    management.port = 9001 (다른 값일 수 있음)

서서 application.properties합니다: 예, 예, 예, 예, 예, 예, 예, 예, 예, 예, 예, 예, 예, 예, 예, 예, 예, 예.

server.port = 65535

그 fie를 어디에 배치할지:

24.3 응용 프로그램 속성 파일

Spring Application은 다음 위치에 있는 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-boot-module-module-config-application-module-files

기본적으로는 스프링 부팅 앱 시작은 내장된 Tomcat server start를 기본 포트 8080으로 합니다.스프링에는 다음과 같은 다양한 커스터마이즈가 준비되어 있습니다.

참고 – server.port=0 스프링 부트를 사용하면 할당되지 않은 임의의 http 랜덤 포트를 찾을 수 있습니다.

1) application.properties

server.port=2020

2) application.yml

server:  
     port : 2020

3) 서버 포트를 프로그램적으로 변경합니다.

3.1) Web Server Factory Customizer 인터페이스 구현 - 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) Embedded Servlet Container Customizer 인터페이스 구현 - 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

실제로 가장 쉬운 방법은 server.port 속성을 설정하는 것입니다.

STS를 IDE로 사용하는 경우 버전 3.6.7부터는 Spring Properties Editor를 사용하여 속성 파일을 열 수 있습니다.

이 에디터는 모든 Spring Boot 속성에 대해 자동 완성 기능을 제공합니다.port를 쓰고 CTRL + SPACE 키를 누르면 server.port가 첫 번째 옵션이 됩니다.

기본적으로는 spring-web 모듈은 포트 번호8080으로 동작하는 임베디드 Tomcat 서버를 제공합니다.가 있는 는, URL 에 액세스 해 .application.properties하여 포트 합니다.server.port★★★★★★★★★★★★★★★★★★.

  server.port= 9876

그러면 응용 프로그램이 포트 9876에서 실행됩니다.

예를 들어 다른 답변에서 언급한 것과 같이 property server.port=8080을 사용하는 것도 좋은 방법입니다.환경 속성을 노출시킬 수도 있다는 점을 언급하고 싶습니다.

SERVER_PORT=8080

스프링 부트에서는 "_"를 "_"로, 환경변수의 경우 대소문자를 "UPER"로 바꿀 수 있습니다..환경변수를 추가.application.properties 명령줄, -Dserver.port=$PORT)

이게 도움이 됐으면 좋겠다

application.properties=>
server.port=8090
application.yml=>
서버포트: 8090

포토는, 다음의 방법으로 추가할 수 있습니다.

  1. [ Configurations ]섹션을 실행합니다.

  2. »application.xmlserver.port=XXXX

드세요.application.propertiessrc/main/resources하다.

server.port=****

서 ''는****는 포트 번호를 나타냅니다.

1.1 속성 파일을 통해 업데이트합니다.

/src/main/main/application.properties

server.port=8888

yaml 파일을 사용하여 업데이트합니다.

   server:

     port: 8888

Embedded Servlet Container Customizer

@Component
public class CustomContainer implements EmbeddedServletContainerCustomizer {

    @Override
    public void customize(ConfigurableEmbeddedServletContainer container) {

        container.setPort(8888);

    }

}

application.properties 파일에 포트 번호를 입력하면 문제가 해결됩니다.

 server.port = 8080

「포트는, 애플리케이션을 호스트 하는 장소에 따라 다릅니다」

이 설정은 application.properties의 /src/main/resources/에서 할 수 있습니다.

server.port = 8090

이 경우에도 하실 수 있습니다.SERVER_PORT portspring boot 을 .환경변수를 설정하고 앱을 재시작하기만 하면 됩니다.

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

이러한 환경변수를 시스템 전체에 설정하지 않을 경우 부팅 앱을 동일한 세션에서 실행해야 합니다.

언급URL : https://stackoverflow.com/questions/21083170/how-to-configure-port-for-a-spring-boot-application

반응형