xx available:expected single matching bean but found 2:xx,xx


问题描述

今天部署环境的时候一直部署失败,出现报错如下:
‘PetWarRewardDao’ available: expected single matching bean but found 2: PetWarRewardDao,petWarRewardDaoSqlImpl

但是我很纳闷,PetWarRewardDao的两个实现类我都标了注解
在这里插入图片描述
在这里插入图片描述
然后使用的地方也是用了@Resource ,为什么还会报错呢?
在这里插入图片描述

原因

原来@resource 虽然是按照名字去注入,它默认是按照名称注入,如果没有指定特别的名称,那么它会以变量名,也就是petWarRewardDao作为name。而bean容器中只有PetWarRewardDao

解决

@Repository("PetWarRewardDao")换为@Repository("petWarRewardDao")


文章作者: fFee-ops
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 fFee-ops !
评论
  目录