4

用語が正しくない場合はご容赦ください。

したがって、私の状況は次のとおりです。

クラスがあります。それを TheClass と呼びましょう。このクラス内には TheData オブジェクトがあります。

次のように、TheData Bean を設定するための XML があります。

<bean id="theData" class="com.abc.TheData">
        <property name="field" value="value1" />

    </bean>

そして、次のような TheClass 内のセッター:

public void setTheData(TheData theData)
{
     this.theData = theData;
}

私の問題は、XML で TheClass Bean も作成しない場合 (したがって、自動配線できない場合)、 theData フィールドを自動配線することを認識できないことです (そうですか?)。また、特定の制限により、XML で TheClass を構成できません (したがって、後で自動配線されます)。それで、私の質問は、どうすればこれを機能させることができますか? 初心者なので至らぬところがありましたらご指摘いただければ幸いです。

4

4 に答える 4

4

Spring コンテキストを取得できる場合は、それを にキャストしAutowireCapableBeanFactory、 のインスタンスをメソッドに渡しTheClassますautowireBean(Object)。次に、Spring はその自動配線ルールをそのオブジェクトに適用しようとします。

@Autowiredただし、setTheDataメソッドに追加する必要があります。

于 2011-01-10T19:59:55.303 に答える
0

@Resource または @Component を使用できます。

于 2013-04-11T21:12:26.663 に答える
0

私は今、この質問を見て、あなたが望むことを行う方法をもう 1 つ追加するかもしれないと考えました (ただし、AutowireCapableBeanFactory が私の選択です)。このブログ投稿で説明されている方法で @Configurable アノテーションを利用できます

于 2014-03-31T09:35:56.710 に答える
-1

XML で TheClass Bean を宣言しなくても、セッターが設定しているインスタンス変数で @Autowired アノテーションを使用できるはずです。あれは:

public class TheClass {
  @Autowired
  private TheData theData;
}
于 2011-01-10T21:12:48.700 に答える