问题背景:
使用springboot
整合mybatis-plus
时,出现报错:nested exception is java.lang.NoClassDefFoundError: org/mybatis/logging/LoggerFactory
问题描述:
pom
中有关依赖如下:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
</dependency>
<!-- druid starter -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
</dependency>
<!-- 分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
</dependency>
版本如下:
<mysql.version>5.1.49</mysql.version>
<druid.version>1.1.22</druid.version>
<pagehelper.version>1.2.3</pagehelper.version>
<mybatis.plus.spring.boot.version>3.4.3</mybatis.plus.spring.boot.version>
原因分析:
经过查找发现mybatis-plus-boot-starter
版本低会导致上述报错,但是我将mybatis-plus-boot-starter
调整到3.4.1还是会出现报错,因此可以排除版本过低原因,那么有可能是出现了版本冲突,最后查找资料发现是pagehelper-spring-boot-starter
与mybatis-plus-boot-starter
发生了版本冲突
解决方案:
在pagehelper-spring-boot-starter
中排除冲突依赖即可
<!-- 分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>${pagehelper.version}</version>
<exclusions>
<exclusion>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
</exclusion>
<exclusion>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
</exclusion>
</exclusions>
</dependency>