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相关推荐

  1. 错误记录:expected single matching bean but found 2

    springboot项目,之前有mysql数据源,现在又新增了clickhouse数据源,于是 新增了一个clickhouseDatasource的配置bean,如下: @Beanpublic Dat ...

  2. 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 ...

  3. spring依赖注入单元测试:expected single matching bean but found 2

    Spring不但支持自己定义的@Autowired注解,还支持几个由JSR-250规范定义的注解,它们分别是@Resource.@PostConstruct以及@PreDestroy. @Resour ...

  4. No qualifying bean of type ‘com.itheima.dao.BookDao1‘ available: expected single matching bean 问题解决

    写代码的时候出现了如下错误,错误原因如下:   Mybatis装载了com.itheima.dao包下的所有bean,自然也包括BookDao1,而spring又装载了 com.itheima.dao ...

  5. 【报错解决】expected single matching bean but found 2

    文章目录 报错信息展示: 项目背景: 报错还原: 原因分析: 解决方案: 方案一:使用@Qualifier注解来指明注入的实例. 方案二:使用@Resource(name="Xxxservi ...

  6. 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. 在项 ...

  7. [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 ...

  8. Spring Boot轻松理解动态注入,删除bean

    原文地址:http://412887952-qq-com.iteye.com/blog/2348445 ​ 我们通过getBean来获得对象,但这些对象都是事先定义好的,我们有时候要在程序中动态的加入 ...

  9. Spring bean依赖注入、bean的装配及相关注解

    依赖注入 Spring主要提供以下两种方法用于依赖注入 基于属性Setter方法注入 基于构造方法注入 Setter方法注入 例子: public class Communication {priva ...

最新文章

  1. python turtle库有什么用_Python中turtle库的使用
  2. 苹果笔记本电脑电池保养细则
  3. 创建索引名称已由现有对象使用_Excel编程周末速成班第3课:Excel对象模型
  4. 开发指南专题五:JEECG微云快速开发平台代码生成器
  5. Exp7 网络欺诈防范 20154301仉鑫烨
  6. Linux 下安装 Elasticsearch5.6.x 详细步骤以及踩坑解决方案
  7. oracle-手动锁表
  8. TBS X5内核SDK静态集成jar完美解决方案
  9. Ctfmon.exe是什么进程?
  10. 各个版本的cmake下载
  11. QDir过滤文件的坑
  12. Java 基础学习之字符串的简单操作和适配器设计模式
  13. 科猫网项目总结(基于SSM框架)
  14. 一步教会你如何获取1688商品详情
  15. BZOJ4200 洛谷2304 UOJ132:[NOI2015]小园丁与老司机——题解
  16. 大数据新时代依然需要古老的磁带存储技术
  17. 【分析】编程和数学是什么关系?为什么编程学习这么火?
  18. 腾讯云点播 - 视频防盗加密 - 使用总结
  19. 电脑分区不小心格式化了文件恢复教程
  20. 龙芯的3A5000:中国的最佳拍档?

热门文章

  1. 【Bootstrap】一个兼容IE8、谷歌等主流浏览器的受众巨幕式风格页面
  2. 读后感:走钢索的人---走出软件作坊:三五个人十来条枪 如何成为开发正规军(十七)
  3. Java数据结构单向循环链表实现约瑟夫问题(丢手绢)
  4. 农业产业化发展趋势下人力资源管理浅析
  5. SimpleDateFormat日期转换之12小时和24小时制
  6. checkpoint 检测失败原因
  7. 小米电视2测评:蓝图远大,力不从心
  8. keep 虚拟路线修改器_王者无限技能10.2最新版-王者无限技能修改器下载
  9. 开启D3:是什么让程序员与设计师如此钟爱
  10. 个人信息怎么被贱卖:运营商内鬼不可或缺