You need to enable JavaScript to run this app. 构建Spring Boot应用时出现DefaultListableBeanFactory类冲突如何解决
优惠活动
大模型
产品
解决方案
定价
更多

构建Spring Boot应用时出现DefaultListableBeanFactory类冲突如何解决

问题根源

你遇到的是典型的Spring依赖类冲突问题:

  • 公司内部communication依赖包中直接内置了org.springframework.beans等Spring核心类,和Spring Boot 2.5.2版本自带的spring-beans:5.3.8存在同包同名类冲突
  • 类加载时优先加载了communication包中的低版本Spring类,该版本没有setApplicationStartup方法,导致调用报错
  • 额外的隐患:你当前pom中spring-boot-starter-actuator指定了2.4.2版本,和父pom继承的2.5.2版本不统一,也可能引发其他版本兼容问题
解决方案

按顺序执行以下操作即可解决:

  1. 统一Spring Boot组件版本
    删除spring-boot-starter-actuator依赖中的<version>2.4.2</version>配置,让其继承父pom的2.5.2版本,保证所有Spring Boot官方组件版本一致:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    
  2. 排除communication中的Spring依赖
    如果communication是通过传递依赖引入的Spring包,在communication的依赖配置中添加排除规则,过滤掉自带的Spring相关依赖:

    <dependency>
        <groupId>com.excample.myArtifact</groupId>
        <artifactId>communication</artifactId>
        <version>latest</version>
        <exclusions>
            <exclusion>
                <groupId>org.springframework</groupId>
                <artifactId>spring-beans</artifactId>
            </exclusion>
            <exclusion>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
            </exclusion>
            <exclusion>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    
  3. 处理内置Spring类的特殊情况
    如果communication是直接把Spring类打包进了自身jar包(即shaded fat jar),按以下方式处理:

    • 优先联系公司内部维护communication依赖的团队,要求提供不内置公共Spring依赖的版本,将Spring作为可选传递依赖对外提供
    • 临时解决方案:调整pom中依赖的声明顺序,把所有Spring Boot官方starter依赖放在communication依赖前面,Maven会优先加载顺序靠前的依赖中的同包同名类
  4. 验证修改结果
    执行命令mvn dependency:tree查看依赖树,确认只有一个版本的spring-beans依赖,且版本为5.3.8,重新打包启动项目即可。

内容的提问来源于stack exchange,提问作者Shahab.es

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 17:30:04