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

springboot中抽象类无法注入到ioc容器

1、背景

在写代码时,发现service接口有两个实现类,并且两个实现类中没有对类名重命名,属性注入的时候也没有使用byName或@Qualifier,正确情况下会发生多实现报错的问题,以前对这个问题进行解析过。
在这里插入图片描述

在这里插入图片描述

2、调试过程

我想通过直接从IOC容器获取接口类型的实现类,看看有几个所以添加了如下代码,发现只有一个实现类,查看没有注入的类发现是抽象类。
在这里插入图片描述
在这里插入图片描述

3、结论

通过查阅,类扫描加载部分代码,发现ClassPathScanningCandidateComponentProvider类中findCandidateComponents方法。如果是抽象类的话,类中方法上有@Lookup注解才能被注入ioc容器,注解只能使用在方法上,在方法上加入注解后,重新启动,果然报错了,说明此抽象方法被注入Ioc容器,有兴趣的朋友可以打断点看看ClassPathScanningCandidateComponentProvider在什么时候创建,findCandidateComponents什么时候调用的。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

http://www.lryc.cn/news/359502.html

相关文章:

  • Java关键字大冒险:深入浅出地理解Java的精髓
  • Android Kotlin 打开相册选择图片(多选)
  • java学习路径
  • [线程与网络] 网络编程与通信原理(四):深入理解传输层UDP与TCP协议
  • IEEE编程语言排行榜:深度解析编程语言的四大维度、五大趋势、六大热门与七大挑战
  • 【C++面试50题】
  • 外汇天眼:ESMA发布针对在投资服务中使用人工智能的公司的指导意见
  • 【前缀和 记忆化搜索】LeetCode1444. 切披萨的方案数
  • 异常处理1--5.31
  • AI免费插件 批量条码大师,支持100多种条码类型
  • 使用 Django 连接 MySQL 数据库
  • 【谷歌开发者月刊】五月内容汇总,Google I/O 点燃您的创新灵感
  • wpf 实现长时间未操作自动退出登录
  • pytorch学习笔记3
  • 开源监控工具monit安装部署
  • Python 时间戳转时间
  • 【网络层】IP地址基础 与 子网掩码
  • Cholesky分解(A=L * L^T)
  • 2024大模型新应用井喷即将到来,算力问题如何解决?
  • SpringBoot 七牛云 OSS 私有模式 获取访问链接
  • python-模块-网络编程-多任务
  • 火狐浏览器网页翻译
  • R语言数据分析案例以及要点和难点
  • 【STL源码剖析-空间配置器】stack、queue简单实现
  • VR导航的实现原理、技术优势和应用场景
  • 淘宝镜像的https证书过期
  • VSCODE 常用快捷键
  • 医院该如何应对网络安全?
  • 【qt】多窗口开发
  • iOS Hittest 机制和实际应用