栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【已经解决】关于Mapper接口、service接口注入失败原因

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【已经解决】关于Mapper接口、service接口注入失败原因

背景:

  • 1、使用maven分模块构建SSM工程
  • 2、没有mybatis映射文件和核心配置文件
  • 3、(2)中的配置都在spring配置中

错误信息

Error creating bean with name 'mainController': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userServiceImpl': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.seig.mapper.UserMapper' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@javax.annotation.Resource(shareable=true, lookup=, name=, description=, authenticationType=CONTAINER, type=class java.lang.Object, mappedName=)}


文字说明:一直提示userMapper这个接口注入失败。

疑惑: 鄙人的配置跟视频一样,跟上一次项目配置也一样,为什么还报错?

怎么办?

问度娘:

  • 1、你web.xml中没有配置监听器加载spring配置文件

【有道理】。不加载spring配置文件,等于没有使用spring,而mybatis靠spring整合,所有mybatis也等于没效果

  
  
    org.springframework.web.context.ContextLoaderListener
  
  • 2、你接口没有加@Mapper和@MapperScan注解

【但我没给mapper接口加注解也可以】
听听看:
mybatis-config中只是会为对应的mapper创建代理类,而想真正包装成bean,注入到spring容器中,还是需要靠AutoConfiguredMapperScannerRegistrar,它会根据扫描@Mapper注释或是@MapperScan指定的包下的接口,将其注册为bean。

  • 3、你没有配置接口实现bean

这个是假答案。我spring帮我生成mapper接口的动态代理对象,我还配置个毛线

我设置context-param全局参数用来解析applicationContext.xml启用spring容器,但不需要加@Mapper和@MapperScan注解,也不需要什么配置mybatis映射文件和mybatis核心配置文件(因为我使用注解)。

原来是我犯了第一条错误,因为忘记在web.xml中没有配置监听器加载spring配置文件,不加载spring配置文件,等于没有使用spring,而mybatis靠spring整合,所有mybatis也等于没效果。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1031995.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号