Spring Boot 애플리케이션이 청취하는 TCP / IP 포트를 구성하여 기본 포트 8080을 사용하지 않는 방법.
server.port=8080
응용 프로그램 속성에서 설정 합니다. 이 구성은 ServerProperties.class
클래스 아래에 org.springframework.boot.autoconfigure.web
있습니다.
Spring Boot 애플리케이션이 청취하는 TCP / IP 포트를 구성하여 기본 포트 8080을 사용하지 않는 방법.
server.port=8080
응용 프로그램 속성에서 설정 합니다. 이 구성은 ServerProperties.class
클래스 아래에 org.springframework.boot.autoconfigure.web
있습니다.
답변:
로이 문서에서 말했다 중 하나를 설정 server.port
JVM에 명령 줄 옵션을 사용하여 시스템 속성으로 -Dserver.port=8090
또는 추가 application.properties
에 /src/main/resources/
와
server.port=8090
임의 포트 사용
server.port=0
@Value("${local.server.port}")
$ SERVER_PORT=8090 java -jar <path/to/my/jar>
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
봄 부팅 외부화 구성이 너무 매력적인 이유이있다.
스프링 부트 애플리케이션의 Embedded Tomcat에서 포트를 변경하는 주요 방법은 두 가지가 있습니다.
application.properties 수정
먼저 / resources 폴더에서 application.properties 파일을 시도 할 수 있습니다.
server.port = 8090
VM 옵션 수정
두 번째 방법은 파일을 수정하거나 로컬에서만 필요한 것을 체크인하지 않으려면 vm arg를 사용할 수 있습니다.
실행-> 구성 편집-> VM 옵션으로 이동하십시오.
-Dserver.port=8090
또한 자세한 정보가 필요하면 여기에서 다음 블로그 게시물을 볼 수 있습니다 . Spring Boot 응용 프로그램에서 포트 변경
Spring Boot는 (다양한 구현 및 / 또는 객체에 순서대로 연결된 프로세서를 통해) 다양한 구성 외부화 메커니즘을 제공하므로 다음 방법을 통해 jar 아카이브 외부 의 모든 속성을 설정할 수 있습니다 .PropertySource
Environment
명령 줄 인수를 통해 속성을 응용 프로그램 인수로 전달
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>
OS 환경 변수 정의
U * IX 쉘
SERVER_PORT=7788 java -jar <path/to/my/jar>
윈도우
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
변환에 의해 이루어졌다 편안한 바인딩 .
또한 프로그래밍 방식으로 포트를 구성 할 수 있습니다
@Configuration
public class ServletConfig {
@Bean
public EmbeddedServletContainerCustomizer containerCustomizer() {
return (container -> {
container.setPort(8012);
});
}
}
@Configuration
대신에 그렇지 @Controller
않습니까? 그렇다면 업데이트하십시오.
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
사용 application.yml
하는 경우 다음 줄을 추가하십시오
server:
port: 9000
물론 임의의 포트의 경우 0입니다.
Spring documentation 에서 설명했듯이 몇 가지 방법이 있습니다.
명령 행에서 포트를 설정하거나 (예 : 8888)
-Dserver.port=8888
또는 --server.port=8888
예 : java -jar -Dserver.port=8888 test.jar
또는 application.properties에서 포트를 설정하십시오.
server.port=${port:4588}
또는 (yaml 구문이있는 application.yml에서)
server:
port: ${port:4588}
-Dport (또는 -Dserver.port)에 의해 전달 된 포트가 명령 행에 설정되면이 포트가 고려됩니다. 그렇지 않은 경우 기본적으로 포트는 4588입니다.
환경 변수에 관계없이 속성 파일에 포트를 적용하려면 다음과 같이 작성하면됩니다.
server.port=8888
프로그래밍 방식으로 수행해야하는 경우 시작하는 동안 설정할 수 있습니다.
System.getProperties().put( "server.port", 80 );
SpringApplication.run(App.class, args);
이것은 환경 종속 포트와 같은 것들에 도움이 될 수 있습니다. 좋은 하루 되세요
System.setProperty("server.port", 80);
이를 달성하는 또 다른 방법입니다.
EmbeddedServletContainerFactory
구성 내에서 Bean 을 대체 하여 포트를 지정할 수 있습니다 (Java 기반 또는 xml). 사용 된 임베디드 서블릿 컨테이너의 포트를 지정할 수 있습니다. Spring Boot-핵심 "내장 서블릿 컨테이너 지원"단락 및 예제를 참조하십시오 . 도움이 되었기를 바랍니다.
에서 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
if가 정의 된 값을 가져옵니다 .
@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() {
}
}
스프링 부트 응용 프로그램이 시작되면 Tomcat과 같은 내장 서버가 기본 포트로 시작됩니다. 임베디드 Tomcat은 기본적으로 8080 포트로 시작합니다. 기본 서버 포트를 변경하는 방법에는 여러 가지가 있습니다.
속성 파일 사용 (.properties / .yml)
속성 파일을 사용하여 서버 포트를 변경하려면 server.port 속성 을 구성해야 합니다.
ㅏ. src \ main \ resources \ application.properties 와 같은 클래스 경로에서 application.properties 사용
server.port = 8585
서버는 8585 포트로 시작합니다. 임의의 서버 포트를 얻으려면 속성에 0을 할당하십시오.
server.port = 0
이제 스프링 부트는 시스템의 어떤 서버에서도 현재 사용하지 않는 포트에서 서버를 시작합니다.
비. src \ main \ resources \ application.yml 과 같은 클래스 경로에서 application.yml 사용
server:
port: 8585
서버는 8585 포트로 시작합니다.
임의 포트의 경우 0을 할당하십시오.
server:
port: 0
--server.port 또는 -Dserver.port와 함께 java 명령 사용
my-app.jar라는 실행 파일 JAR이 있다고 가정하고 java 명령을 사용하여 스프링 부트 응용 프로그램을 시작하는 동안 다음과 같이 인수를 사용할 수 있습니다.
--server.port 사용
java -jar my-app.jar --server.port=8585
-Dserver.port 사용
java -jar -Dserver.port=8585 my-app.jar
서버는 8585 포트로 시작합니다.
짧게 --port 또는 -Dport와 함께 java 명령 사용
--server.port와 -Dserver.port를 짧게 만들기 위해 server 키워드를 제거하고 --port 및 -Dport와 같은 짧은 키워드로 만들 수 있습니다. 짧은 키워드를 사용할 수 있습니다. 여기서 우리는 포트를 짧은 키워드로 사용하고 있습니다. 이를 위해서는 속성 파일에서 다음과 같이 자리 표시자를 구성해야합니다.
application.properties 사용
server.port=${port:8282}
application.yml 사용
server:
port: ${port:8282}
포트를 인수로 전달하지 않으면 기본적으로 서버는 8282로 시작합니다. 다른 포트를 원하면 다음과 같이 인수로 원하는 포트를 전달해야합니다. my-app.jar라는 실행 파일 JAR이 있다고 가정하십시오.
--port 사용
java -jar my-app.jar --port=8585
-Dport 사용
java -jar -Dport=8585 my-app.jar
서버는 8585 포트로 시작합니다.
프로그래밍 방식으로 SpringApplication과 함께 SERVER_PORT 사용
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 포트로 서버를 시작합니다.
gradle을 빌드 도구로 사용하는 경우 application.yml 파일 에서 서버 포트를 다음 과 같이 설정할 수 있습니다 .
server:
port: 8291
maven을 사용하는 경우 포트는 application.properties 파일에서 다음과 같이 설정할 수 있습니다 .
server.port: 8291
server.port = 8291
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
server.port 8080
자바 프로퍼티 파일에 대한 잘못된 구문입니다 ...
에서 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
파일이 있는 디렉토리에 넣었습니다 .
에서:
기본적으로 스프링 부트 앱은 기본 포트 8080에서 내장 Tomcat 서버 시작으로 시작합니다. 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
예를 들어 다른 답변에서 언급 한 것처럼 server.port = 8080 속성을 사용하는 것이 확실히 방법입니다. 환경 속성을 노출 할 수도 있다고 언급하고 싶었습니다.
SERVER_PORT=8080
스프링 부트는 "."를 대체 할 수 있기 때문에 최근 버전의 환경 변수의 경우 "_"및 대문자에서 소문자로 표시됩니다. 당신이 꼭 모든 추가 / 편집하지 않고 해당 환경 변수를 정의 곳이 용기에 특히 유용합니다 application.properties
명령 줄을 통해 시스템 특성을 나 전달 (예 -Dserver.port=$PORT
)
SERVER_PORT=8081 mvn spring-boot:run
이 하나가 도움이되기를 바랍니다
application.properties => server.port = 8090 application.yml => 섬기는 사람 포트 : 8090
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);
}
}