3

これがすでに議論されている場合は申し訳ありませんが、満足のいく答えが見つかりませんでした。

Springframework で Bean を作成し、それを別の Bean のフィールドに @Autowired するとどうなるかわかりません。@Autowired およびその他のアノテーションの結果は理解していますが、Spring によってどのように行われたかはわかりません。

class Sample1{
    //
}

class Sample2{
@Autowired
Sample1 sample1Bean;
}

<bean id="sample1Bean" class="...Sample1"/>
<bean id="sample2Bean" class="...Sample2"/>

私の質問は、Spring がフィールド sample1Bean を Sample2 にどのように設定するかです。私は完全な説明を期待していませんが、私が見なければならない方向は素晴らしいでしょう. ありがとう。

4

2 に答える 2

3

、注釈は、-specific によって解決さ@Autowiredれます。この Bean ポスト プロセッサは、Bean の作成 (@Autowired がコンストラクターにある場合) をインターセプトし、Bean のプロパティを設定して、すべての自動配線されたフィールドが適切に設定されるようにします。@InjectBeanPostProcessorAutowiredAnnotationBeanPostProcessor

于 2012-08-31T02:31:08.417 に答える
2

私は春の専門家ではありませんが、私が知っていることに答えます。Springを利用したWebアプリケーションが起動すると、SpringフレームワークはアプリケーションコンテキストでBeanインスタンス化プロセスを実行します。Beanの作成中に、Springは特定のBeanに必要な依存関係をチェックします。必要なタイプのBeanに基づいて一致するBeanを検索し、@Autowiredアノテーションが指定されたときにそれを自動配線します。

上記の例では、Springはアプリケーションコンテキストを調べて、タイプがBean(オブジェクト)を作成しますSample1。Beanを構築するとき、Sample2アノテーション@Autowiredを確認し、タイプがインスタンス化されたBeanを探しますSample1。タイプのBeanが見つかるSample1と、そのBeanを注入しSample2、作成を終了しSample2ます。これは依存性注入と呼ばれ、Springフレームワークの非常に人気のある機能の1つです。

お役に立てれば。

于 2012-08-31T01:59:33.453 に答える