当我只想使用 RestTemplate 时,如何防止 tomcat/jetty 在 Spring 启动时自动启动
How to prevent auto start of tomcat/jetty in Spring Boot when I only want to use RestTemplate
我想通过将工件包含在 SpringBoot 应用程序中来使用 RestTemplate/TestRestTemplate
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</dependency>
但这会自动启动 Tomcat 或 Jetty。有没有办法将其关闭,或者不包括上述工件。 TestRestTemplate 在引导工件中,但不在基础 RestTemplate 中。
Spring 如果 Web 容器不存在,Boot 将不会启动它。 spring-web
不提供任何嵌入式容器。您可能想分析项目的依赖项(尝试 mvn dependency:tree
)。
如果您想确保 Web 服务器未在您的 spring 启动应用程序中启动,您可以设置以下配置键
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 启动对 reactive server.
的支持
您可以按照https://spring.io/guides/gs/async-method/关闭应用。虽然这仍然是 stars Tomcat,但会在最后停止应用程序而不保持胎面 运行。
SpringApplication.run(MyApp.class, args).close();
我想通过将工件包含在 SpringBoot 应用程序中来使用 RestTemplate/TestRestTemplate
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</dependency>
但这会自动启动 Tomcat 或 Jetty。有没有办法将其关闭,或者不包括上述工件。 TestRestTemplate 在引导工件中,但不在基础 RestTemplate 中。
Spring 如果 Web 容器不存在,Boot 将不会启动它。 spring-web
不提供任何嵌入式容器。您可能想分析项目的依赖项(尝试 mvn dependency:tree
)。
如果您想确保 Web 服务器未在您的 spring 启动应用程序中启动,您可以设置以下配置键
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 启动对 reactive server.
的支持您可以按照https://spring.io/guides/gs/async-method/关闭应用。虽然这仍然是 stars Tomcat,但会在最后停止应用程序而不保持胎面 运行。
SpringApplication.run(MyApp.class, args).close();