【发布时间】:2013-06-29 05:14:09
【问题描述】:
我正在尝试将构造函数注入到下面的 bean 中,但我不断收到未找到默认构造函数的错误 - 原因:java.lang.NoSuchMethodException: my.package.MyBean.<init>()。
如果我添加一个默认构造函数,错误就会消失,但显然这不是我想要做的。
我想了解为什么简单的xml 映射与我拥有的构造函数不匹配。
我知道以前有人以某种形式提出过这个问题,但这些答案对我的情况都没有帮助。
TIA。
@Component
@Scope("singleton")
public class MyBean {
private Map<String, ResourceManager> rm;
public MyBean(final Map<String, ResourceManager> rm) {
this.rm = rm;
}
...
}
XML
<bean id="mybean" class="my.package.MyBean">
<constructor-arg>
<util:map>
<entry key="MANAGER1" value-ref="manager1" />
<entry key="MANAGER2" value-ref="manager2" />
</util:map>
</constructor-arg>
</bean>
<bean id="manager1".....</bean>
<bean id="manager2".....</bean>
【问题讨论】:
-
您可以在没有默认构造函数的情况下执行此操作。但是我没有连接 Map,所以我不知道这是否是构造函数参数的正确方法。
标签: java spring code-injection default-constructor