2

我正在尝试将构造函数注入到下面的 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>
4

1 回答 1

1

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

Spring 是否要求所有 bean 都具有默认构造函数?

没有默认构造函数的类在spring中的bean类实例化

尝试标记构造函数@Autowired。

于 2013-06-29T11:21:18.413 回答