Spring 3.2.0 版本的一个 ClassMetadataReadingVisitor 错误

简介: 今天把自己的一个项目,从 Spring 3.0.6 升级到 3.2.0 ,Maven中更新依赖包后,直接报下面错误: java.lang.IncompatibleClassChangeError: class org.

今天把自己的一个项目,从 Spring 3.0.6 升级到 3.2.0 ,Maven中更新依赖包后,直接报下面错误:

java.lang.IncompatibleClassChangeError: class org.springframework.core.type.classreading.ClassMetadataReadingVisitor has interface org.springframework.asm.ClassVisitor as super class
	at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.findCandidateComponents(ClassPathScanningCandidateComponentProvider.java:281)

  

Incompatible 英文是矛盾的意思,也就是有冲突,再看后面的错误:ClassMetadataReadingVisitor has interface ClassVisitor,也就是说 ClassMetadataReadingVisitor 实现了 ClassVisitor 接口,但是貌似这里出现了问题,于是我看Spring中2个版本的源码,发现了变化。在 Spring 3.0.6中:
class ClassMetadataReadingVisitor implements ClassVisitor, ClassMetadata {
...
 
在 Spring 3.2.0中:
class ClassMetadataReadingVisitor extends ClassVisitor implements ClassMetadata {
...

大家都看到问题在哪了吧,3.0.6中,ClassVisitor 是一个接口(interface ClassVisitor),而在3.2.0中,ClassVisitor变成了抽象类(abstract class ClassVisitor)。

为了解决这一问题,最好的办法就是版本一致,也就是所有spring的包,最好是同一个版本,或同一阶段的版本。

 

 

目录
相关文章
|
Java 应用服务中间件 Spring
66Spring - 源码解析Spring的启动机制(contextConfigLocation)
66Spring - 源码解析Spring的启动机制(contextConfigLocation)
74 0
|
6月前
|
SQL Java 数据库连接
挺详细的spring+springmvc+mybatis配置整合|含源代码
挺详细的spring+springmvc+mybatis配置整合|含源代码
|
4月前
|
JavaScript 安全 Java
Spring Boot中的版本兼容性处理
Spring Boot中的版本兼容性处理
|
Java Spring
ES和 Spring Boot 以及 Spring Framework 兼容性列表
ES和 Spring Boot 以及 Spring Framework 兼容性列表
|
Java Spring
spring小错误(配置的时候)
很明显(其实不明显)就是被我注释的那个玩意name后面多了个空格,导致一直出错,然后,查了半个小时。我真的是傻不啦叽的玩意
spring小错误(配置的时候)
|
安全 Java Maven
Spring Boot 太狠了,一口气发布了 3 个版本!
Java技术栈 www.javastack.cn 关注阅读更多优质文章 上一篇:Spring Boot 太狠了,一次性发布了 3 个版本! Spring Boot 这么狠的么,每次连发三个版本,Spring Boot 比 Java 还要版本帝啊。
213 0
Spring Boot 太狠了,一口气发布了 3 个版本!
|
Java Spring
Spring Boot 2.2.1 发布,一个有点坑的版本!
Spring Boot 2.2.1 发布,一个有点坑的版本!
284 0
Spring Boot 2.2.1 发布,一个有点坑的版本!
|
算法 Java Spring
学习Spring5必知必会(1)~未使用spring前的麻烦
学习Spring5必知必会(1)~未使用spring前的麻烦
96 0
|
消息中间件 Kubernetes 负载均衡
Spring Cloud 2021.0.0 正式发布,第一个支持Spring Boot 2.6的版本!
Spring Cloud 2021.0.0 正式发布,第一个支持Spring Boot 2.6的版本!
485 0
|
Java Spring
Spring Boot 2.4 对多环境配置的支持更改
Spring Boot 2.4 对多环境配置的支持更改
357 0
下一篇
无影云桌面