可能是问题标题似乎重复,但我收到相同的错误,无法在stackoverflow中找到答案。
我有一个控制器
@Controller
public class MyController{
@Autowired
BeanA beanA;
@RequestMapping(value="/home")
public String showHomeScreen(){
return "home";
}
}
我的BeanA课程:
public class BeanA
{
private Map<Object, Object> maps;
//Setters,Getters
}
我以这种方式在spring配置中配置BeanA
<bean id="beanA" class="com.mycompany.beans.BeanA">
<property name="maps">
<map>
<entry key="Key 1" value="1" />
<entry key="Key 2" value="2" />
</map>
</property>
</bean>
更新
堆栈跟踪:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'myController': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: com.mycompany.beans.BeanA com.mycompany.controller.MyController.beanA ; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.mycompany.beans.BeanA] 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.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:289)
我还注册了我的上下文基础包
<context:component-scan base-package="com.mycompany.*"/>
现在,当我部署我的应用程序时,我收到错误,因为无法自动装配字段“beanA”注册自动装配的依赖项失败。
有人可以帮我解决这个问题....
答案 0 :(得分:1)
stacktrace说:
MyController
被Spring正确扫描,但存在依赖性错误BeanA
不存在是相同的应用程序上下文可能的原因:
beanA
的配置文件不由Spring处理(最有可能)Autowire
而没有结束d
时......)beanA
的上下文与MyController
一个上下文不同,也不是父上下文答案 1 :(得分:0)
你是对的@Serge Ballesta。春天不认识豆A。 关于Autowire它的一个错字我在原帖中更新为Autowired
所以我在BeanA上添加了@component,并以这种方式改变了上下文组件扫描
<context:component-scan base-package="com.mycompany.*"/>
到
<context:component-scan base-package="com.mycompany"/>
但即使我在spring config xml中提到,我仍然不会注册我的bean。
Anywayz现在我没有收到任何错误,问题就解决了。