排错
1、分析堆栈信息
下图是报错信息,这个时候可以看到,spring启动的时候,找不到对应的org.mybatis.logging.LoggerFactory,无外乎两种原因:jar包版本冲突、未导入
2、通过工具锁定报错
于是根据报错节点进行查找系统依赖的jar,发现,是存在的。
利用maven插件(maven helper)检查一下和mybatis相关的jar包是否存在冲突,如下图,不出所料,pagehelper-starter中引入了mybatis-starter,本项目依赖的项目中也引入了相关jar包
解决思路(二选一)
1、依赖排除
这个时候解决方案当时我认为是只有一种,就是在项目pom文件中对pagehelper做mybatis排除
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>${github.pagehelper.version}</version>
<exclusions>
<exclusion>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
</exclusion>
</exclusions>
</dependency>
2、mvnrepository.com,升级版本
但是我没有这么做,我去查看了一下pagehelper-starter的版本,发现我使用的版本比较低,寻思先换个版本升级一下,于是把pagehepler-start版本从 1.2.3 升级到1.3.0,然后刷新,再然后,它自己就好了,笑哭
总结
问题很简单,项目中存在两个mybatis,由于maven加载的优先级,导致使用了低版本的pagehlper-start,低版本缺少jar包导致系统无法启动。所以解决方案有两种(升级高版本、排除pagehelper中的mybatis)
好了,踩坑记录就先到这儿。