source

RestTemplate만 사용하는 경우 Spring Boot에서 Tomcat/jetty 자동 시작을 방지하는 방법

ittop 2023. 3. 8. 21:49
반응형

RestTemplate만 사용하는 경우 Spring Boot에서 Tomcat/jetty 자동 시작을 방지하는 방법

SpringBoot 응용 프로그램에 아티팩트를 포함하여 RestTemplate/TestRestTemplate를 사용하고 싶다.

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
    </dependency>

그러나 Tomcat 또는 Jetty가 자동으로 시작됩니다.위의 아티팩트를 포함하지 않고 전원을 끌 수 있는 방법이 있습니까?TestRestTemplate는 부팅 아티팩트에 있지만 기본 RestTemplate에는 없습니다.

Spring Boot는 웹 컨테이너가 존재하지 않으면 시작되지 않습니다. spring-web에서는 임베디드 컨테이너가 제공되지 않습니다.프로젝트의 종속성을 분석할 수 있습니다(시도해 보십시오).mvn dependency:tree).

스프링 부트 응용 프로그램에서 웹 서버가 시작되지 않도록 하려면 다음 구성 키를 설정할 수 있습니다.

spring.main.web-application-type=none

또는 를 사용할 수 있습니다.SpringApplicationBuilder

new SpringApplicationBuilder(YourApp.class)
        .web(WebApplicationType.NONE).run(args);

Spring Boot 2.0.0 이후 이 속성은 폐지되었으며 다음과 같은 새로운 방법이 추가되었습니다.

spring.main.web-application-type=none

이 변경은 Spring Boot이 리액티브서버를 지원하기 때문입니다.

https://spring.io/guides/gs/async-method/에 따르면 앱을 종료할 수 있습니다.이것은 여전히 Tomcat을 주연으로 하지만, 트레드를 계속 실행하지 않고 마지막에 앱을 정지합니다.

SpringApplication.run(MyApp.class, args).close();

언급URL : https://stackoverflow.com/questions/31897165/how-to-prevent-auto-start-of-tomcat-jetty-in-spring-boot-when-i-only-want-to-use

반응형