Spring wire up - 找不到默认构造函数

时间:2013-06-29 05:14:09

标签: java spring code-injection default-constructor

我正在尝试对下面的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>

1 个答案:

答案 0 :(得分:1)

对于同样的问题给出了类似的答案,可能是你遇到了同样的问题?

Does Spring require all beans to have a default constructor?

bean class instantiation in spring for a class without default constructor

尝试标记构造函数@Autowired。