【发布时间】:2019-07-25 12:31:55
【问题描述】:
我的类路径上有多个应用程序服务器,即通过 spring-boot-starter-webflux 的 Netty 和通过另一个依赖链的 Tomcat。如何确定在 Spring Boot 中使用哪个应用程序服务器?
目前,正在启动 Tomcat 而不是 Netty。
重要提示:我不能排除其中任何一个,CXF使用Tomcat,WebClient使用Netty。
【问题讨论】:
标签: spring-boot
我的类路径上有多个应用程序服务器,即通过 spring-boot-starter-webflux 的 Netty 和通过另一个依赖链的 Tomcat。如何确定在 Spring Boot 中使用哪个应用程序服务器?
目前,正在启动 Tomcat 而不是 Netty。
重要提示:我不能排除其中任何一个,CXF使用Tomcat,WebClient使用Netty。
【问题讨论】:
标签: spring-boot
只需使用正确的 spring-boot-starter-package
https://docs.spring.io/spring-boot/docs/current/reference/html/howto-embedded-web-servers.html
在你的情况下,它可能是spring-boot-starter-reactor-netty
排除多个 JEE 嵌入式容器并删除不需要的容器也是明智之举。
【讨论】:
您可以在启动时直接在您的配置中指定应用程序是响应式的
@Configuration
@EnableAutoConfiguration
public class Application {
public static void main(final String[] args) {
final SpringApplication springApplication = new SpringApplication(Application.class);
springApplication.setWebApplicationType(WebApplicationType.REACTIVE);
springApplication.run(args);
}
}
【讨论】:
NettyReactiveWebServerFactory bean,那么它会优先于 Tomcat