2

以下の Bean にコンストラクター インジェクションを実行しようとしていますが、デフォルトのコンストラクターが見つからないというエラーが発生し続けます - 原因: java.lang.NoSuchMethodException: my.package.MyBean.<init>().

デフォルトのコンストラクターを追加すると、エラーはなくなりますが、明らかにこれは私がやりたいことではありません。

xml単純なマッピングが私が持っているコンストラクターと一致しない理由を理解したいと思います。

この質問が以前に何らかの形で尋ねられたことは知っていますが、私の状況ではそれらの回答はどれも役に立ちません。

ティア。

@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 に答える