好多博客对于这个问题解释的不是很清楚,搞的楼主头皮发麻一整天啊!!!!!
所以说要先搞明白错误在哪里。
- mongodb jar包与spring-core jar包版本冲突出先上述错误
- maven项目为了避免冲突一般都是将所有spring jar包版本封装进一个版本号中,只能保证spring自身不受冲突
- 修改mongodb jar包版本或者spring-core jar包版本就可以解决此问题
- 建议使用第二种
这个错误是因为
spring-context (<spring.version>4.1.6.RELEASE</spring.version>)中会有spring-expression的版本信息
但是,在spring-data-mongodb 2.0.8.RELEASE的版本中也存在了spring-expression的版本信息,于是乎,这两者便产生了冲突
出现此问题的俩种不同解决方案建议使用第二种
方法一:改变mongodb的jar包版本号,这个可能导致自身配置的spring-mongodb.xml版本信息出错,所以配置完jar包信息还需更改spring-mongodb.xml中的信息。
把 spring-data-mongodb
2.0.8.RELEASE
换成 spring-data-mongodb
1.4.2.RELEASE
也就是把 spring-data-mongodb 换成较低的 1.4.2.RELEASE 版本
方法二:从上文中我们知道该错误是由于mongodb jar包与spring-core jar包版本冲突出先上述错误第一种是该mongodb,那么第二种当然是改spring-core
其实3.2.0版本之上应该就没有冲突了,楼主是看到官网该版本下载次数较多,故选择。
<!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.3.20.RELEASE</version>
<!-- <version>${spring.version}</version> -->
</dependency>