找不到限定符(*****)的bean,报告 Spring Bean 注入点的自动装配问题:不止一种 ‘concrete‘ 类型的 Bean没有 ‘concrete‘ 类型的 Bean没有带限定符

找不到限定符(*****)的bean,报告 Spring Bean 注入点的自动装配问题:不止一种 ‘concrete‘ 类型的 Bean没有 ‘concrete‘ 类型的 Bean没有带限定符,第1张

相信大家在做SSM项目或spring,springMVC项目时会遇到以下问题:

找不到限定符(*****)的bean,报告 Spring Bean 注入点的自动装配问题:不止一种 'concrete' 类型的 Bean没有 'concrete' 类型的 Bean没有带限定符,SpringBean组件中的注入点滴自动装配问题的检查

这种情况出现原因有三种:

1.bean没有装配到Spring容器当中

2.没有配置bean扫描器

3.没有SetGet方法

Bean注入有2种方式:

1.通过注解的方式

2.在配置文件中写Bean:

废话不说,上解决方案

第一步:

首先看看自己的项目中有没有扫描器 以下图

第二步 通过注解的方式来进行装配:

Service层:

其中@Service注解的作用就是实例化下面的类:默认名称为类名首字母小写

@Autowired:完成自动装配

@Qualifier:指定使用哪个类,来为以下的属性进行注入

Controller层:

 其中红圈的名称就是实例化SuperAdminServiceImpl后的名称

 有的做项目的时候注解都不差为什么还是爆红呢?

原因就是SuperAdminServiceImpl中属性的SetGet方法

这说明 实例化是需要Set方法

接下来我们说说注入第二种方法 在配置文件中写入bean

通过以上图可发现爆红了,这是因为没有bean

接下来我们把bean注释去掉

其中Qualifier是要和bean id名称一样的

注意 红圈中的superAdminDao为属性,因为spring已经帮我们实例化了superAdminDao了,这里要用 ref对象注入的方式,而不是用普通类型value的方式注入,

如果尝试以上方法还是不行的话,可能是因为实例化太多了,Spring不知道用哪一个

可以试试在@Service后面加入名称

 

以上应该能帮你解决问题,本人经验尚且不足,有不足的望大佬帮忙指正 谢谢!!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/741209.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-28
下一篇 2022-04-28

发表评论

登录后才能评论

评论列表(0条)

保存