整合Spring6+MyBatis3.5.10出现的bug

大致错误为:

警告: Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name accountServiceImpl: Unsatisfied dependency expressed through field accountDao: Error creating bean with name accountDao defined in file [E:Desktopsm argetclassescommmgdaoAccountDao.class]: Unsatisfied dependency expressed through bean property sqlSessionFactory: Error creating bean with name sqlSessionFactoryBean defined in class path resource [com/mmg/config/DataSourceConfig.class]: Failed to instantiate [org.mybatis.spring.SqlSessionFactoryBean]: Factory method sqlSessionFactoryBean threw exception with message: org/springframework/core/NestedIOException

经过我反复的实验,发现了是Spring整合MyBatis的依赖太低,在我们使用Spring6正式版后,Spring整合MyBatis的依赖版本必须为3.0.0以上!在升级依赖后重新启动项目即可!

<dependencies>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>6.0.3</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>6.0.3</version>
    </dependency>
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.30</version>
    </dependency>
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.11</version>
    </dependency>
    <!--升级为spring6正式版(里程碑版没影响)后,sprng整合mybatis的依赖必须是3.0.0以上-->  
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>3.0.1</version>
    </dependency>
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.2.13</version>
    </dependency>
  </dependencies>
经验分享 程序员 微信小程序 职场和发展