我使用Spring 3.0.4。我有一些在地图上使用@Autowired注释的bean。这些映射是在application-context.xml文件中定义的(因为这些映射是使用多种工厂方法构建的)。自动装配映射不按预期工作
当我使用我的调试器时,我可以看到使用正确的(预期的)bean id构造映射。但是,一旦自动装配过程开始,它声称它找不到具有刚刚创建的id的bean。
一段代码:
@Autowired
@Qualifier("dienstverbandMap")
private Map<String, String> dienstverbandMap;
上下文XML的海贼王:
<bean class="java.util.HashMap" id="dienstverbandMap" factory-bean="someFactoryMethod" factory-method="getMappedMap"/>
重要的细节,当我改变类型java.lang.Object中在我的课和上下文XML它既确实有线事实上,我可以将其转换为我的代码中的HashMap,并让所有的东西都能正常工作。但那不是我想要的。
任何人都得到了解释我做错了什么?
你说得对。我的工厂方法签名返回Map <>,当我将其更改为HashMap时,所有内容都开始工作。谢谢!! :) – 2011-02-09 10:51:23
我想,工厂实现了一个强制返回类型为Map(或更具体)的接口。然而,即使这样也行不通。我必须改变界面才能使这个工作。 Yuk :) – 2011-02-09 12:28:56