导入一个新项目,在自己电脑导入失败...
报错,org.apache.ibatis.annotations.Param,如下:
在网上搜了之后说没导入ibatis的jar包,因为@Param这个类是ibatis的jar包中的,但是很奇怪,用的是mybatis,之前项目根本没有导入那个jar包,直觉告诉我这么处理是不靠谱的,但是还是尝试了一下,导入jar包依赖后,错误马上消失了,庆幸了一下。然而当tomcat运行起来的时候问题就出来了,显示at sun.reflect.generics.reflectiveObjects.ParameterizedTypeI,这个错误原因真是看不懂,最后还是删了之前导的jar包,直接修改mybatis版本为最新版本(可以在maven中央仓库查),然后项目就正常了。
原因分析:
原因1:spring整合mybatis的时候,对mybatis的版本是有要求的,如下:
<dependency><--错误,不兼容-->
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.2.2</version>
</dependency>
两个mybatis版本不兼容,把第一个dependency的mybatis版本提高的最新就可以解决这个问题了。改变后的结果如下所示:
<dependency><--提高mybatis版本后,正常兼容-->
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.2.7</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.2.2</version>
</dependency>