0

この春の依存性注入の例では、こちら

最後のテスト クラスが実行されると、次の行の後に:

MySpringBeanWithDependency test = (MySpringBeanWithDependency) factory
        .getBean("mySpringBeanWithDependency");

ライタークラスのどの実装が注入されますか? テスト クラスは、実際の実装を作成し、Writer でビジネス メソッドを呼び出す前にそれを注入する責任があります。本当ですか?

4

1 に答える 1

0

注釈ベースの例と XML ベースの例の両方で、Spring はNiceWriterBean を Bean に注入しMySpringBeanWithDependencyます。

注釈の例では、これはクラスに で注釈が付けられているため(NiceWriterクラスには注釈が付けられていないため)、Spring はクラスパス スキャンを介してこれを検出し、 に自動配線します。@ServiceWriterMySpringBeanWithDependency

XML の例では、NiceWriterクラスが id を持つ Bean を定義するために使用されwriter、これが id を持つ Bean の「ライター」プロパティとして参照されるためmySpringBeanWithDependencyです。

どちらの場合も、MySpringBeanWithDependencyBean は Spring を介して注入された依存関係でインスタンス化されるため、すぐに使用できます。依存関係を管理する責任はありません。IWriterこれが、依存性注入(略して DI) が通常、制御の反転(略して IoC) と密接に関連している理由です。Spring は、DI を使用する IoC コンテナーを提供します。

于 2013-08-30T15:00:30.523 に答える