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

spring-boot-starter-webflux与spring-boot-starter-jetty依赖冲突问题咨询

嘿,这个问题我熟!咱们先搞清楚为啥会报错,再给你具体的解决办法。

错误根源

你看到的这个提示,核心原因是Spring MVC(传统阻塞式Web框架)和Spring WebFlux(响应式Web框架)是互斥的,不能在同一个Spring Boot应用中同时启用。

那为啥你加了spring-boot-starter-webflux和spring-boot-starter-jetty就触发了冲突?因为spring-boot-starter-jetty默认是为Spring MVC设计的——它的依赖树里自带了spring-boot-starter-web(也就是Spring MVC的核心依赖包)。你手动引入WebFlux之后,Spring Boot的自动配置机制同时检测到了MVC和WebFlux的存在,自然就抛出了冲突提示。

解决步骤

要让Jetty成为WebFlux的嵌入式服务器(WebFlux默认用Netty,不过可以替换成Jetty/Tomcat),你需要修改Maven依赖,把Jetty starter里自带的Spring MVC依赖排除掉:

<!-- 引入响应式WebFlux核心依赖 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-webflux</artifactId>
</dependency>

<!-- 引入Jetty,但排除自带的Spring MVC依赖 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jetty</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </exclusion>
    </exclusions>
</dependency>

另外还要做两个检查:

  • 确认项目里没有手动添加@EnableWebMvc或@EnableWebFlux注解(Spring Boot自动配置已经帮你处理了框架启用,手动加反而可能出问题)
  • 用Maven命令排查是否有其他依赖悄悄引入了Spring MVC:
    mvn dependency:tree
    
    如果发现有其他依赖带了spring-boot-starter-web,同样用<exclusion>标签把它排除掉。

这样调整后,Spring Boot就会用Jetty来运行你的WebFlux应用,冲突也就解决了。

内容的提问来源于stack exchange,提问作者Melad Basilius

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:35:52