相信大家在做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后面加入名称
以上应该能帮你解决问题,本人经验尚且不足,有不足的望大佬帮忙指正 谢谢!!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)