问题描述
如题报错NoSuchBeanDefinitionException
问题出现的环境背景及自己尝试过哪些方法
B管理最底层的bean,A管理调用B接口方法和dao
相关代码
// 请把代码文本粘贴到下方(请勿用图片代替代码)
B文件:
@ContextConfiguration(locations = {"classpath*:context.xml"})
@Service
public class B extends AbstractTestNGSpringContextTests {
@Autowired
public A a;
}
A文件:
@Service
public class A extends B{
@Autowired
public XXDAO xdao;
public String get(String aa){
return xdao.get(aa)}
}
C文件调用A的实例:
public class C extends B{
a.get(aa)
}
你期待的结果是什么?实际看到的错误信息又是什么?
期望C运行后能执行get方法,但始终加载不了A ,但别人的工程就可以,怀疑是有配置遗漏了?排查时在C中直接加载xdao.get(aa)方法是没有问题的,serviceA死活注入不成功...
报错信息
org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [package.A] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:1100)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:960)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:855)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:480)
... 46 more