当前使用版本(必填,否则不予处理)

    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.4.2</version>
    </dependency>

springboot 版本 2.1.0.RELEASE org.springframework.boot spring-boot 2.1.0.RELEASE 事实上是3.0.7+都有

nested exception is java.lang.NoClassDefFoundError: org/mybatis/logging/LoggerFactory 搜索这行关键字,一堆讨论这个问题的,已经有很久的讨论了,

该问题是如何引起的?(确定最新版也有问题再提!!!)

这个问题网上讨论已经有很多了,但是都没有解决问题。 https://blog.csdn.net/yang5726685/article/details/108979868 https://www.codeleading.com/article/16813039403/ https://blog.csdn.net/MacWx/article/details/98656594 https://gitee.com/baomidou/mybatis-plus/issues/ITB8U 这个问题建议mybatis-plus官方提供一个标准依赖配置demo做参考,以及跟mybatis官方包存在的问题注意点。

重现步骤(如果有就写完整)

引入包,更新依赖,启动就会报错。

报错信息

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is java.lang.NoClassDefFoundError: org/mybatis/logging/LoggerFactory at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:625) at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:605) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1288) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1127) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:538) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:498) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:273) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1239) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1166) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1467) ... 55 common frames omitted Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is java.lang.NoClassDefFoundError: org/mybatis/logging/LoggerFactory at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185) at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:620) ... 68 common frames omitted Caused by: java.lang.NoClassDefFoundError: org/mybatis/logging/LoggerFactory at com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean.(MybatisSqlSessionFactoryBean.java:93) at com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration.sqlSessionFactory(MybatisPlusAutoConfiguration.java:160) at com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration$$EnhancerBySpringCGLIB$$40ea7fa2.CGLIB$sqlSessionFactory$1() at com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration$$EnhancerBySpringCGLIB$$40ea7fa2$$FastClassBySpringCGLIB$$100d2e9c.invoke() at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:244) at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:363) at com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration$$EnhancerBySpringCGLIB$$40ea7fa2.sqlSessionFactory() at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) ... 69 common frames omitted Caused by: java.lang.ClassNotFoundException: org.mybatis.logging.LoggerFactory at java.net.URLClassLoader.findClass(URLClassLoader.java:382) at java.lang.ClassLoader.loadClass(ClassLoader.java:418) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ... 81 common frames omitted

本地LoggerFactory相关的包 MyBatis-Plus java.lang.NoClassDefFoundError: org/mybatis/logging/LoggerFactory

Comment From: miemieYaho

https://github.com/mybatis/spring/blob/master/src/main/java/org/mybatis/logging/LoggerFactory.java

Comment From: yinqifang

使用 mvn dependency:tree 查看下最终依赖的mybatis-spring是否被降了版本,3.4.2版本的mybatis-plus引入的应该是2.0.5版本的mybaits-spring。 我在项目中也遇到这个问题,确认下来是父工程中也引入了mybatis-plus导致版本被降低,手动添加依赖后问题解决了,供参考。 org.mybatis> mybatis-spring 2.0.5

Comment From: PrisonerAZ

使用 mvn dependency:tree 查看下最终依赖的mybatis-spring是否被降了版本,3.4.2版本的mybatis-plus引入的应该是2.0.5版本的mybaits-spring。 我在项目中也遇到这个问题,确认下来是父工程中也引入了mybatis-plus导致版本被降低,手动添加依赖后问题解决了,供参考。

org.mybatis> mybatis-spring 2.0.5

这个管用,我的项目是老项目spring mvc的。所以改mybatis-spring的版本就行了。感谢!!!!!