如何防止在Spring Boot中自动启动tomcat/jetty,当我只想使用RestTemplate时

2022-09-01 16:34:47

我想通过在SpringBoot应用程序中包含工件来使用RestTemplate/TestRestTemplate。

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

但这会自动启动Tomcat或Jetty。有没有办法关闭它,或者通过不包括上述工件。TestRestTemplate 位于引导工件中,但不在基本 RestTemplate 中。


答案 1

如果 Web 容器不存在,Spring Boot 不会启动它。 不提供任何嵌入式容器。您可能希望分析项目的依赖项(尝试 )。spring-webmvn dependency:tree

如果要确保在 Spring 引导应用程序中未启动 Web 服务器,可以设置以下配置键

spring.main.web-application-type=none

或者您可以使用SpringApplicationBuilder

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

答案 2

从Spring Boot 2.0.0开始,此属性已被弃用,以下是新方法:

spring.main.web-application-type=none

此更改是因为 Spring Boot 支持反应式服务器。


推荐