spring 項目中的一個異常

今天把本身的一個Demo項目,Maven中更新依賴包後,直接報下面錯誤:java

java.lang.IncompatibleClassChangeError: class org.springframework.core.type.classreading.ClassMetadataReadingVisitor has interface org.springframework.asm.ClassVisitor as super classspring

    at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.findCandidateComponents(ClassPathScanningCandidateComponentProvider.java:281)ide

Incompatible 英文是矛盾的意思,也就是有衝突,再看後面的錯誤:ClassMetadataReadingVisitor has interface ClassVisitor,也就是說 ClassMetadataReadingVisitor 實現了 ClassVisitor 接口,可是貌似這裏出現了問題,因而我看Spring中2個版本的源碼,發現了變化。在 Spring 3.0.6中:spa

class ClassMetadataReadingVisitor implements ClassVisitor, ClassMetadata {ssr

...接口

 

在 Spring 3.2.0中源碼

class ClassMetadataReadingVisitor extends ClassVisitor implements ClassMetadata {it

...io

你們都看到問題在哪了吧,3.0.6中,ClassVisitor 是一個接口(interface ClassVisitor),而在3.2.0中,ClassVisitor變成了抽象類(abstract class ClassVisitor)。asm

爲了解決這一問題,最好的辦法就是版本一致,也就是全部spring的包,最好是同一個版本,或同一階段的版本。

相關文章
相關標籤/搜索