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

Spring Boot启动失败:ConfigurableListableBeanFactory方法缺失问题

Spring Boot启动失败:方法不存在的版本兼容问题

错误信息

APPLICATION FAILED TO START

描述:
尝试调用一个不存在的方法,调用发起位置如下:

org.springframework.boot.actuate.autoconfigure.startup.StartupEndpointAutoConfiguration$ApplicationStartupCondition.getMatchOutcome(StartupEndpointAutoConfiguration.java:63)

不存在的方法为:

org.springframework.beans.factory.config.ConfigurableListableBeanFactory.getApplicationStartup()Lorg/springframework/core/metrics/ApplicationStartup;

该方法所属类org.springframework.beans.factory.config.ConfigurableListableBeanFactory的来源位置为:
jar:file:/Users/doc/.m2/repository/org/springframework/spring-beans/5.2.5.RELEASE/spring-beans-5.2.5.RELEASE.jar!/org/springframework/beans/factory/config/ConfigurableListableBeanFactory.class
类加载位置为:

file:/Users/doc/.m2/repository/org/springframework/spring-beans/5.2.5.RELEASE/spring-beans-5.2.5.RELEASE.jar

建议操作:
修正应用的类路径,使其包含单一兼容版本的org.springframework.beans.factory.config.ConfigurableListableBeanFactory

问题根源分析

你的POM配置存在多处版本不兼容问题:

  1. Actuator版本冲突:父依赖是Spring Boot 2.2.6.RELEASE,但手动指定spring-boot-actuator-autoconfigure为2.4.0版本。高版本Actuator会调用Spring 5.3+才有的getApplicationStartup()方法,而Spring Boot 2.2.x对应的Spring版本是5.2.x,因此出现方法不存在的错误。
  2. Spring Cloud组件版本不匹配:
    • Spring Boot 2.2.6.RELEASE对应Spring Cloud版本为Hoxton.SR6,但你手动指定了spring-cloud-starter-openfeign(2.0.1.RELEASE)、spring-cloud-starter-netflix-ribbon(2.1.0.RELEASE),这些版本与Hoxton不兼容。
    • spring-cloud-vault-config(3.1.1)和spring-vault-core(2.3.2)版本过高,Spring Boot 2.2.x对应的Spring Cloud Vault版本应为2.2.x系列。
  3. 手动指定过多不必要版本:多数依赖应通过Spring Boot或Spring Cloud的依赖管理自动控制版本,避免手动指定导致冲突。

修复后的POM配置

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.2.6.RELEASE</version>
</parent>

<properties>
    <java.version>1.8</java.version>
    <!-- Spring Cloud版本,与Spring Boot 2.2.6匹配的Hoxton.SR6 -->
    <spring-cloud.version>Hoxton.SR6</spring-cloud.version>
    <!-- Swagger版本保持不变 -->
    <springfox-swagger2.version>2.4.0</springfox-swagger2.version>
</properties>

<dependencyManagement>
    <dependencies>
        <!-- Spring Cloud依赖管理,自动控制所有Spring Cloud组件版本 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>${spring-cloud.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        
        <!-- Swagger依赖管理 -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>${springfox-swagger2.version}</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>${springfox-swagger2.version}</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-staticdocs</artifactId>
            <version>${springfox-swagger2.version}</version>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>
    <!-- Spring Cloud Vault,由Spring Cloud依赖管理控制版本 -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-vault-config</artifactId>
    </dependency>
    
    <!-- Spring Boot核心依赖 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <!-- 移除手动指定版本的spring-boot-actuator-autoconfigure,由starter自动引入兼容版本 -->
    
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.25</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>
    <!-- Spring Retry由Spring Boot或Cloud依赖管理控制 -->
    <dependency>
        <groupId>org.springframework.retry</groupId>
        <artifactId>spring-retry</artifactId>
    </dependency>
    <!-- Spring Cloud OpenFeign,由Spring Cloud依赖管理控制版本 -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-openfeign</artifactId>
    </dependency>
    <!-- Spring Cloud Ribbon,由Spring Cloud依赖管理控制版本 -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
    </dependency>
</dependencies>

关键修复点

  • 移除所有手动指定的Spring Cloud组件版本(如vault、feign、ribbon),通过spring-cloud-dependencies自动引入与Spring Boot 2.2.6兼容的版本。
  • 删除手动指定版本的spring-boot-actuator-autoconfigure,它会通过spring-boot-starter-actuator自动引入匹配版本。
  • 移除不必要的spring-vault-core依赖,spring-cloud-vault-config会自动引入所需核心依赖。
  • 保留Swagger版本配置,因其不属于Spring Boot/Cloud依赖管理体系。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 23:49:53