You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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做以下调整:

  1. 删除spring-cloud-starter-gateway-mvc依赖
  2. 替换为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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 11:36:16