0

Ok。私は質問をする方法さえわかりません、それは私が何かを逃しているに違いないというサインです。私にできる最善のことは、「オブジェクトを手動でインスタンス化し、そのオブジェクト内でインジェクションを使用する方法はありますか?」です。

具体的には、私が持っていると言います:

class A {

   public A(MyObject1 obj1, MyObject2 obj2, ..., MyObjectn objn) {
     ...
   }

}

MyObjectnを除くこれらすべてのオブジェクトを配線したいと思います。私の知る限り、上記のコンストラクターの前で@Autowiredを使用する場合は、そのクラスのインスタンスを使用するコードで、次のようにそのオブジェクトをインスタンス化する必要があります。

@Autowired
A a;

これでは、コンストラクターでobjnを手動で渡すことはできません。そのクラスのインスタンスを使用するコードでAを手動で初期化する以外に、その制限を回避する方法はありますか?

4

2 に答える 2

3

短い答え - いいえ。IoC を使用するか、オブジェクトを手動でインスタンス化します。

私の頭に浮かぶ1つの回避策:

すべての MyObject1 を使用して Service を作成します。@Autowired

このサービス内にメソッドを作成します。

public A createA(MyObjectN objn) {
   return new A(object1, object2... objn); //note that object1 .. objectn-1 are autowired.
}

@Autowired;) を使用してサービスを注入し、呼び出しますservice.createA()

于 2013-02-27T21:29:19.290 に答える
-1

vmokshaのsunilkumar

いいえ、そのように作成することはできません

于 2013-02-28T11:40:11.887 に答える