SpringBoot1.5升级到2.2时报错:NoClassDefFoundError: org/springframework/boot/bind/RelaxedPropertyResolver
最新推荐文章于 2022-12-15 19:18:53 发布
2020-07-23 00:48:23

从SpringBoot1.5升级到2.2时报错:NoClassDefFoundError: org/springframework/boot/bind/RelaxedPropertyResolver.

这个是因为从2.0开始 删除了这种方式获取参数.

2.0之前是

RelaxedPropertyResolver resolver = new RelaxedPropertyResolver(environment, "kafka.consumer.");
Map<String, Object> subProperties = resolver.getSubProperties("");

2.0开始是:

Properties properties = Binder.get(environment).bind("kafka.consumer",Properties.class).orElse(null);

这里用到了SpringBoot的一个自动配置功能@EnableConfigurationProperties,它能标注了 @ConfigurationProperties 注解的类自动纳入Spring bean管理,相当于直接在类中配置@Conpannent.也可以引入自动配置包代替

@EnableConfigurationProperties({KafkaConsumerProperties.class,KafkaProducerProperties.class})

也可以引入自动配置包代替 @EnableConfigurationProperties,因为spring-boot-autoconfigure包已经包含了自动配置.

<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-autoconfigure -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-autoconfigure</artifactId>
    <version>2.3.1.RELEASE</version>
</dependency>

这里有个官方的升级指引:是英文版的,实在看不懂可以用Google翻译

Spring Boot 2.0 Migration Guide

springboot2.2.x升级springboot2.3.1.RELEASE NoClassDefFoundError: javax.validation.constraints.NotNull springboot2.2.x升级springboot2.3.1.RELEASE 之后 ,启动报javax.validation.constraints.NotNull 找不到异常 。 springboot2.3.1.RELEASE 没有自动引入 valida. 记录一次SpringBoot启动报nested exception is java.lang.NoClassDefFoundError:RelaxedPropertyResolver的错误问题 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.github.pagehelper.autoconfigure.PageHelperAutoConfiguration': Post-processing of merged bean definition fail... 从去年下半年开始,alibaba  dubbo团队开始恢复更新,正好我们项目中用到了dubbo+zookeeper 分布式消息分发系统.于是从gitHub上下载了最新的dubbo-Spring-boot的项目来看,发现里面的依赖已经严重过,dubbo版本不是最新的2.6.0以及Spring boot版本才1.3.5,想着本地更新下.当我把spring boot 修改为2.0.0-RELEASE... java.lang.NoClassDefFoundError: org/springframework/boot/bind/RelaxedPropertyResolver springboot启动报错Spring boot java.lang.NoClassDefFoundError: org/springframework/boot/bind/RelaxedPropertyResolver 原因是版本不一致导致的找不到 org/springframework/boot/bind/RelaxedPropertyResolver 解决办法:将引用的springb... 今天在做SpringBoot的项目,出现了一连串的错误,解决了一个又一个,真的是层出不穷。和大家分享一下。 个人分析:是因为在pom文件中引用了有关druid的依赖导致的现在的报错(PS:在此之前没有错误,可以正常运行) 引入的依赖: <dependency> <groupId>com.alibaba</groupId>... 1.SpringBoot 1.X 官方已不再进行维护; 2.SpringBoot 1.X 下许多新发现的SpringBootSpringFramework的漏洞无法再进行升级处理,安全扫描无法通过; 3.SpringBoot 2.X 下的应用启动速度会比SpringBoot1提升10到20秒间,整体性能上也更优。 凡是被Spring管理的类,实现接口 EnvironmentAware 重写方法 setEnvironment 可以在工程启动,获取到系统环境变量和application配置文件中的变量。 2022-04-02 11:02:08.858 ERROR 14428 --- [ main] o.s.boot.SpringApplication : Application run failed org.springframework.beans.factory.BeanDefinitionStoreException: Failed to process import candidates for configuration class [com.g. &lt;!-- Spring Boot集成 pagehelper--&gt; &lt;dependency&gt; &lt;groupId&gt;com.github.pagehelper&lt;/groupId&gt;