解决Spring整合Mybatis报错问题

前言


该博客用于解决黑马程序员SSM框架教程_Spring+SpringMVC+Maven高级+SpringBoot+MyBatisPlus企业实用开发技术-第29集:Spring整合Myabtis课程

报错问题

吊话和吊图

可能有人也会像我一样,学完了这一集,去快乐的把敲完代码时,总会报错,跑不起来,非常的火大,甚至3-5刷,重复确定自己是不是在哪个重要环节摸鱼漏掉了,直到去找到他们写的源码一一对比,才发现不是我们的问题。

然后就去看报错信息

原报错信息


Error creating bean with name 'accountServiceImpl': Unsatisfied dependency expressed through field 'accountDao': Error creating bean with name 'accountDao' defined in file [/Users/hua/Study/SSM/SSM_Spring-Mybatis/target/classes/Box/Dao/AccountDao.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory': Error creating bean with name 'sqlSessionFactoryBean' defined in Box.Config.MybatisConfig: Failed to instantiate [org.mybatis.spring.SqlSessionFactoryBean]: Factory method 'sqlSessionFactoryBean' threw exception with message: org/springframework/core/NestedIOException

翻译


创建名为“accountServiceImpl”的bean时出错:通过字段“accountDao”表达的不满足的依赖项:创建文件[/Users/hua/Study/SSM/SSM_Spring-Mybatis/target/classes/Box/Dao/accountDao.classe]中定义的名为“accountDao”的bean时出错:通过bean属性“sqlSessionFactory”表达的不满足的依赖项:创建Box中定义的名称为“sqlSessionFactoryBean”的bean时出错。配置。MybatisConfig:未能实例化[org.mybatis.spring.SqlSessionFactoryBean]:工厂方法“SqlSessionFactoryBean”引发异常,消息为:org/springframework/core/NestedIOException

好了,当我看到这个就更加懵逼了,寻思着咱们代码都**一毛一样,为啥你能跑,而我不行?

解决问题

好了好了,吊图和吊话都说完了,该解决正事了。


其实有时候代码跑不起来报错,并不是100%代码本身问题,它可能会因为有时 IDE 的缓存或配置问题可能会导致类加载或资源访问问题或者是当使用开源库或框架时,这些问题可能会在不同的版本中发生。

解决办法

IDE:尝试重启 IDE 并清理/重建项目

开源库或框架:更新你的框架版本

上面报错我就是更新的我的spring-context版本号

更新前的

<dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.2.10.RELEASE</version>
</dependency>

更新后的

<dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.3.18</version>
</dependency>

是的,没有看错,就只需要更新的一个<version>就行了,我当时直接懵了,然后我就去想去搜索原因

搜到了有几个可能的原因可以解释为什么更新 spring-context 的版本后问题得到了解决


  1. Bug 修复:新版本可能修复了旧版本中影响 spring-context 与其他组件(如 MyBatis)交互的 bug。

  2. 依赖兼容性:如果你的项目中还使用了其他 Spring 相关的组件或库,它们可能与 spring-context 的特定版本不兼容。更新 spring-context 到新版本可能解决了这些组件之间的兼容性问题。

  3. JDK 版本兼容性:如果你使用的 JDK 版本与旧版的 spring-context 不完全兼容,但与新版本兼容,那么更新 spring-context 也可以解决这个问题。

  4. API 变更:有时库的新版本会更改 API 或内部实现,这可能会影响到使用这些 API 的代码。如果你的项目中恰好使用了 spring-context 中发生变更的部分,并且这些变更解决了之前的问题,那么更新版本就会起作用。

  5. 第三方库依赖:你的项目中可能还依赖于其他第三方库,这些库可能与 spring-context 的特定版本有依赖关系。更新 spring-context 可能间接解决了与这些第三方库之间的兼容性问题。

总之,更新 spring-context 版本后问题得到解决,通常是因为新版本修复了旧版本中的一些问题,或者提供了与你的项目其他部分更好的兼容性

  • 40
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值