启动spring-boot出现Error creating bean with name ‘configurationPropertiesBeans‘ defined in class的报错

整合注册中心Eureka,启动provider_service服务的时候出现了如下的报错:(后面发现是由于provider_service,eureka_server使用的spring-boot版本不一致导致报错)

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'configurationPropertiesBeans' defined in class path resource [org/springframework/cloud/autoconfigure/ConfigurationPropertiesRebinderAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.cloud.context.properties.ConfigurationPropertiesBeans]: Factory method 'configurationPropertiesBeans' threw exception; nested exception is java.lang.NoClassDefFoundError: org/springframework/boot/context/properties/ConfigurationBeanFactoryMetadata
    at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:656) ~[spring-beans-5.3.1.jar:5.3.1]
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:484) ~[spring-beans-5.3.1.jar:5.3.1]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1336) ~[spring-beans-5.3.1.jar:5.3.1]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1179) ~[spring-beans-5.3.1.jar:5.3.1]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:571) ~[spring-beans-5.3.1.jar:5.3.1]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:531) ~[spring-beans-5.3.1.jar:5.3.1]
    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.1.jar:5.3.1]
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.1.jar:5.3.1]
 

后面仔细查看了pom.xml之后发现

provider_service的pom.xml里面的spring-boot是2.4版本的

  1.  
    <groupId>org.springframework.boot</groupId>
  2.  
    <artifactId>spring-boot-starter-parent</artifactId>
  3.  
    <version>2.4.0</version>

而注册中心Eureka(eureka_server)pom.xml的spring-boot的版本为:

  1.  
    <groupId>org.springframework.boot</groupId>
  2.  
    <artifactId>spring-boot-starter-parent</artifactId>
  3.  
    <version>2.2.11.RELEASE</version>
  4.  
    <relativePath/>

后面将provider_service的pom.xml里面的spring-boot版本修改和eureka_server一致,provider_service服务就能正常开启了。

总结:整合注册中心Eureka的时候,各个服务使用的spring-boot版本最好保持一致,不然可能会出现未知错误。

原文地址:https://www.cnblogs.com/LoganChen/p/14138612.html