SpringBoot集成Netflix Zuul启动报configurationPropertiesBeans错求适配版本
版本不兼容根因
Error creating bean with name 'configurationPropertiesBeans'报错由Spring Boot与Spring Cloud Netflix Zuul的版本适配关系不匹配导致:
spring-cloud-starter-netflix-zuul 2.2.9.RELEASE属于Spring Cloud Hoxton版本分支,该分支最高仅支持Spring Boot 2.3.x版本- 当前使用的Spring Boot 2.5.4属于更高版本分支,对应的Spring Cloud 2020.0.x及以上版本已正式移除Netflix Zuul组件,无适配的Zuul版本可用
适配版本修改方案
统一将Spring Boot版本降至2.3.x稳定版即可完全适配现有Zuul依赖,修改后的完整pom.xml如下:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <!-- 调整为Hoxton分支支持的最高稳定Spring Boot版本 --> <version>2.3.12.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.example</groupId> <artifactId>HospitalGatewayService</artifactId> <version>0.0.1-SNAPSHOT</version> <name>HospitalGatewayService</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> <!-- 新增Spring Cloud版本统一管理 --> <spring-cloud.version>Hoxton.SR12</spring-cloud.version> </properties> <dependencyManagement> <dependencies> <!-- 导入Spring Cloud依赖版本管理,所有Cloud组件无需单独指定版本 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-zuul</artifactId> <!-- 移除单独指定的版本,统一继承依赖管理中的版本 --> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <!-- 版本继承parent的2.3.12.RELEASE,无需单独指定 --> </plugin> </plugins> </build> </project>
修改后清理本地Maven缓存重新构建即可正常启动。
内容的提问来源于stack exchange,提问作者Sankalp
相关产品推荐
相关产品推荐

