当前位置: 首页 > news >正文

Error creating bean with name ‘xxxxxxxController‘: Injection of resource dependencies failed报错已解决

Error creating bean with name ‘XXXController’: Injection of resource dependencies failed

问题已解决:4 种高频原因全面排查指南

一、项目场景

在一次Spring Boot + MyBatis的后台项目开发过程中,项目结构、依赖、配置看似全部完成,但在启动项目时却直接报错,控制台抛出了熟悉又让人头大的异常:

Error creating bean with name ‘xxxxxxController’: Injection of resource dependencies failed

项目无法启动,Controller Bean 注入失败,开发直接被“卡死”。

这种问题在 Spring Boot 项目中非常常见,尤其是在刚接触 MyBatis、XML Mapper 配置或包路径配置时,几乎人人都会踩坑。

本文将结合一次真实踩坑经历,系统性地总结 4 种最常见的错误原因,只要你逐条排查,总有一种能帮你快速定位问题。


二、问题描述

1️⃣ 项目目录结构(示例)

一个典型的 Spring Boot + MyBatis 项目结构如下:

com.example.demo ├── controller │ └── UserController.java ├── service │ ├── UserService.java │ └── impl │ └── UserServiceImpl.java ├── dao │ └── UserMapper.java ├── entities │ └── User.java └── mapper └── UserMapper.xml

代码编译无误,IDEA 也不报红,但一运行项目,直接启动失败。


2️⃣ 报错信息核心提示

Error creating bean with name 'userController': Injection of resource dependencies failed

本质含义只有一句话:

Spring 在创建 Controller Bean 时,无法成功注入其依赖对象(Service / Mapper)


三、原因分析(4 种高频踩坑点)

原因一:Mapper 接口缺少@Mapper注解

❌ 错误示例
publicinterfaceUserMapper{UserselectById(Longid);}

Spring无法扫描到 Mapper,自然也无法注入。

✅ 正确做法
@MapperpublicinterfaceUserMapper{UserselectById(Longid);}

或者在启动类统一扫描:

@MapperScan("com.example.demo.dao")@SpringBootApplicationpublicclassDemoApplication{publicstaticvoidmain(String[]args){SpringApplication.run(DemoApplication.class,args);}}

原因二:Service 实现类缺少@Service注解

❌ 错误示例
publicclassUserServiceImplimplementsUserService{}

接口有了,实现类却没被 Spring 托管。

✅ 正确做法
@ServicepublicclassUserServiceImplimplementsUserService{}

记住一句话

Controller 能不能注入 Service,取决于 Service 是否是 Spring Bean。


原因三:Mapper.xml 参数类型或路径映射错误

这是最容易被忽略、也最容易出问题的一类

1️⃣ parameterType 写成类名
<selectid="selectById"parameterType="User">select * from user where id = #{id}</select>

如果你这样写,就必须在配置文件中声明实体包别名

✅ application.yml 正确配置
mybatis:type-aliases-package:com.example.demo.entities

2️⃣ 不想配别名?那就写全限定名
<selectid="selectById"parameterType="com.example.demo.entities.User">

二选一即可,否则必错。


原因四(最隐蔽,也是最坑的):包名大小写写错

这是我这次真正踩到的“血案级错误”。

实体类真实包名是:
com.example.demo.entitles
但我在配置文件中写的是:
mybatis:type-aliases-package:com.example.demo.Entitles

⚠️ 注意:
一个大写字母,就足以让路径映射彻底失效。


❌ 错误的后果

  • MyBatis 找不到实体类
  • Mapper.xml 加载失败
  • Mapper Bean 创建失败
  • Service 注入失败
  • Controller 注入失败
  • 最终抛出:Injection of resource dependencies failed

四、解决方案(完整排查清单)

当你遇到这个错误时,请按下面顺序逐条检查

✅ 1. Mapper 接口

  • 是否加了@Mapper或使用了@MapperScan

✅ 2. Service 实现类

  • 是否加了@Service
  • 是否放在 Spring 扫描路径下

✅ 3. Mapper.xml

  • namespace是否与 Mapper 接口全限定名一致
  • parameterType / resultType是否正确
  • 是否配置了type-aliases-package

✅ 4. 包名大小写

  • 实体包名
  • yml / properties 中配置的包名
  • XML 中引用的类名

一个字符都不要想当然。


五、配置文件小建议(新手强烈推荐)

为什么推荐application.properties

  • 优先级高于application.yml
  • 不依赖缩进
  • 不容易因为格式错误导致配置失效
示例
mybatis.type-aliases-package=com.example.demo.entities mybatis.mapper-locations=classpath:mapper/*.xml

对于新手来说,容错率更高,排错成本更低


六、总结

  • Injection of resource dependencies failed不是一个具体错误

  • 它只是告诉你:Spring 没法正常装配 Bean

  • 真正的问题,往往藏在:

    • 注解缺失
    • XML 配置
    • 路径映射
    • 包名大小写

永远不要因为“感觉自己都写对了”而跳过排查。

很多时候,Bug 不是复杂,而是你没想到它可以这么简单。

希望这篇文章,能帮你少踩一次坑。

http://www.jsqmd.com/news/275519/

相关文章:

  • 如何测试AI生成的邮件是否符合商务礼仪:软件测试从业者指南
  • 通过agentscope在EKS部署远程沙盒和代理应用
  • IDEA_pom.xml_spring-boot-maven-plugin爆红问题解决
  • 全国现代物业管理人才培养赋能新质生产力发展研讨会 (MPMTT 2026)
  • 跨境电商防关联:从“单点隔离”到“系统化风控”一套打穿
  • 玩转Synbo|为什么说质押是进入Club的关键动作
  • Galaxy比数平台功能介绍及实现原理|得物技术
  • 上位机软件开发中串口超时机制的设计实践
  • Eclipse 打开报 `An error has occurred. See the log null` 错误及解决方法
  • 第七篇:告别手动拼 URL!我们封装自己的“地图超市”
  • 基于微信小程序的小区租车拼车系统【源码+文档+调试】
  • VitePress 进阶指南:自动化侧边栏配置与 TOC 渲染深度排查
  • 35岁转行学了网络安全,能谋生吗?
  • 数字频率计设计超详细版:基本结构与工作流程讲解
  • ERROR. pos 145, line 2, column 21, token COMMA 报错已解决
  • vivado安装资源推荐:新手自学的最佳路径
  • 前端指纹技术是如何实现的?(Canvas、Audio、硬件API 核心原理解密)
  • LLM动态调参医疗设备故障预警提前30%
  • uni-app使用北斗卫星实现离线定位
  • Java中构建前端可视化维度指标列表:从代码实现到最佳实践
  • React 官方纪录片观后:核心原理解析与来龙去脉
  • AI法律文书准确性测试方法论
  • 跨境电商“防关联”实战指南:把风险挡在账号之外
  • 别管,咱们前端人有自己的拼夕夕~
  • 大家有空就去看这份前端宝典,真的能提高level
  • 2026年国内GEO优化服务商深度评测:数据监测能力对比分析
  • 从策划到执行一站式服务,苏州合肥江苏南京双节美陈设计公司甄选
  • 收藏!大模型技术与应用体系梳理(小白程序员入门必看)
  • WPF 事件机制与初始化流程深度解析
  • 文件重命名软件 Bulk Rename Utility v4.1绿色便携版