available: expected single matching bean but found 2
available: expected single matching bean but found 2: smsLogServiceImpl,ISmsLogService
如上图,是在启动的时候出现的问题,从字意上可以看出,是说在注入bean的时候,出现了两个,spring不知道应该用哪个为好,这里说下可能出现到的原因:
1、譬如service层和mapper层没有引入对应的注解(@Service/@Mapper)引起的。
2、一个接口被两个实现类实现了,当使用到@Autowired注解引入的时候就会让spring不知道用哪个。
3、service和serviceImpl的命名,有这么个情况:
如Service类命名为“ISmsLogService”和实现类命名为“smsLogServiceImpl”的时候,一般在视图层调用的时候会用@Autowired引入,但是此时要注意,引入的时候如果写成 private ISmsLogService smsLogService ; 就会出现问题了。原因是,ISmsLogService在初始化的时候加入到IOC容器的名称是去掉I的并且是以小写开头的name值“smsLogService”,在@Autowired引入的时候,会拿private ISmsLogService smsLogService ;中的“smsLogService”进行注入,此时就会与service的bean有冲突,就会报有两个,但不知道要用到哪一个的情况。
(就是把smsLogService改为smsLogServiceImpl也行,总之不要与service同名就好)
下面是解决方式:
1:在@Service注解中加入name值;
2:可以用@Resource(name=“”)注解,进行用新的bean名称注入(这个是JDK的注解);
3:在@Autowired的下方加上@Qualifier(value="")注解,value直接为需要用的的servie名;
或许上述的解答不是很完善,也可能还会存在其他问题,知道的农名工朋友们可以一起写出来,有看到问题不知道怎么解决的工友看到了,方便排查问题,佛祖很喜欢有能力的人的,阿门。
【注】:在发现问题前,一点刚要先仔细查看自己的代码是否有那个地方是疏忽的,导致写错的,这类问题有时候很难排查的,写代码最好不要一连串写完才尝试测试,不然中间一旦出现问题,会很难受的。
available: expected single matching bean but found 2相关推荐
- 错误记录:expected single matching bean but found 2
springboot项目,之前有mysql数据源,现在又新增了clickhouse数据源,于是 新增了一个clickhouseDatasource的配置bean,如下: @Beanpublic Dat ...
- Spring项目启动报错No qualifying bean of type [xxx] available: expected single matching bean but found 2
启动报错: No qualifying bean of type [class1] available: expected single matching bean but found 2,class ...
- spring依赖注入单元测试:expected single matching bean but found 2
Spring不但支持自己定义的@Autowired注解,还支持几个由JSR-250规范定义的注解,它们分别是@Resource.@PostConstruct以及@PreDestroy. @Resour ...
- No qualifying bean of type ‘com.itheima.dao.BookDao1‘ available: expected single matching bean 问题解决
写代码的时候出现了如下错误,错误原因如下: Mybatis装载了com.itheima.dao包下的所有bean,自然也包括BookDao1,而spring又装载了 com.itheima.dao ...
- 【报错解决】expected single matching bean but found 2
文章目录 报错信息展示: 项目背景: 报错还原: 原因分析: 解决方案: 方案一:使用@Qualifier注解来指明注入的实例. 方案二:使用@Resource(name="Xxxservi ...
- Expected single matching of application, but found 2 instances, will randomly pick the first one.
Expected single matching of application, but found 2 instances, will randomly pick the first one. 在项 ...
- [DUBBO] Expected single matching of monitor, but found 2 instances, will randomly pick the first one
最近项目由alibaba dubbo升级到apache duboo 项目启动时出现[DUBBO] Expected single matching of monitor, but found 2 in ...
- Spring Boot轻松理解动态注入,删除bean
原文地址:http://412887952-qq-com.iteye.com/blog/2348445 我们通过getBean来获得对象,但这些对象都是事先定义好的,我们有时候要在程序中动态的加入 ...
- Spring bean依赖注入、bean的装配及相关注解
依赖注入 Spring主要提供以下两种方法用于依赖注入 基于属性Setter方法注入 基于构造方法注入 Setter方法注入 例子: public class Communication {priva ...
最新文章
- python turtle库有什么用_Python中turtle库的使用
- 苹果笔记本电脑电池保养细则
- 创建索引名称已由现有对象使用_Excel编程周末速成班第3课:Excel对象模型
- 开发指南专题五:JEECG微云快速开发平台代码生成器
- Exp7 网络欺诈防范 20154301仉鑫烨
- Linux 下安装 Elasticsearch5.6.x 详细步骤以及踩坑解决方案
- oracle-手动锁表
- TBS X5内核SDK静态集成jar完美解决方案
- Ctfmon.exe是什么进程?
- 各个版本的cmake下载
- QDir过滤文件的坑
- Java 基础学习之字符串的简单操作和适配器设计模式
- 科猫网项目总结(基于SSM框架)
- 一步教会你如何获取1688商品详情
- BZOJ4200 洛谷2304 UOJ132:[NOI2015]小园丁与老司机——题解
- 大数据新时代依然需要古老的磁带存储技术
- 【分析】编程和数学是什么关系?为什么编程学习这么火?
- 腾讯云点播 - 视频防盗加密 - 使用总结
- 电脑分区不小心格式化了文件恢复教程
- 龙芯的3A5000:中国的最佳拍档?