Spring Boot WebFlux网关项目启动Tomcat而非Netty问题求助
问题根源
你引入的spring-cloud-starter-gateway-mvc是**基于Spring MVC(Servlet栈)**的网关依赖,它会自动引入spring-boot-starter-web(默认绑定Tomcat)——这才是项目启动Tomcat的核心原因,和你排除spring-boot-starter-webflux里的Tomcat无关,因为mvc网关本身就自带了Tomcat依赖。
解决方案
直接修改pom.xml做以下调整:
- 删除
spring-cloud-starter-gateway-mvc依赖 - 替换为
spring-cloud-starter-gateway(这是基于WebFlux的响应式网关,默认适配Netty)
修改后的完整dependencies片段:
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-webflux</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter</artifactId> </dependency> <!-- 替换为WebFlux版本的网关依赖 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>io.projectreactor</groupId> <artifactId>reactor-test</artifactId> <scope>test</scope> </dependency> </dependencies>
验证效果
修改后重启项目,日志会显示类似Netty started on port 8084的内容,说明Netty已作为Web服务器正常启动。
内容的提问来源于stack exchange,提问作者kedar
相关产品推荐
相关产品推荐

