我正在尝试对下面的bean进行构造函数注入,并且我一直得到默认的构造函数not found错误 - 引起: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>
答案 0 :(得分:1)
对于同样的问题给出了类似的答案,可能是你遇到了同样的问题?
Does Spring require all beans to have a default constructor?
bean class instantiation in spring for a class without default constructor
尝试标记构造函数@Autowired。