当我只想使用RestTemplate

时间:2015-08-08 18:26:46

标签: java spring spring-boot resttemplate

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

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

但这会自动启动Tomcat或Jetty。有没有办法将其关闭,或者不包括上述工件。 TestRestTemplate位于引导工件中,但不是基础RestTemplate。

3 个答案:

答案 0 :(得分:37)

Spring Boot不会启动Web容器,如果它不存在的话。 spring-web未提供任何嵌入式容器。您可能想要分析项目的依赖关系(尝试mvn dependency:tree)。

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

spring.main.web-environment=false

或者您可以使用SpringApplicationBuilder

new SpringApplicationBuilder(YourApp.class)
        .web(false).run(args);

答案 1 :(得分:18)

自Spring Boot 2.0.0以来,不推荐使用此属性,以下是新方法:

spring.main.web-application-type=none

此更改是因为Spring Boot支持reactive server.

答案 2 :(得分:0)

您可以根据https://spring.io/guides/gs/async-method/关闭该应用。尽管这仍然是Tomcat的主角,但最终将停止应用程序,而不会继续运行。

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