我想通过在SpringBoot应用程序中包含工件来使用RestTemplate / TestRestTemplate
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</dependency>
但这会自动启动Tomcat或Jetty。有没有办法将其关闭,或者不包括上述工件。 TestRestTemplate位于引导工件中,但不是基础RestTemplate。
答案 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();