Error creating bean with name ‘XXX‘: Injection of resource dependencies failed; expected single

Error creating bean with name ‘XXX‘: Injection of resource dependencies failed; expected single_第1张图片

原因一

注入的service有多个实现,但是没有指定具体装配的是哪个bean,Spring就不知道去装配哪个bean

解决办法
使用注解指定实现类的名称

@Component("xxx")
@Service("xxx") ...等注解

同时使用@Resource注解注入时需要指定bean的名称,Resource它默认是按名称依赖注入的

@Resource(name = "xxx")

 这样就可以正确装配你想要的bean

原因二

 如果按照原因一的方法进行设置了,还会出现无法注入bean的情况,可能是因为指定的bean名称是以defaultXXX开头,这也是我当时遇到的情况,修改个名字就好了,具体原因需要追溯到Spring的源码

你可能感兴趣的:(踩过的坑,spring)