0

最終フィールドを持つ Bean があります。

public class Foo {
   Service service;
   final String bar;
   public Foo(String bar){};
}

servicefinal ではなく、setter があります。bar最終的なもので、多くの値を持つことができます。finalキーワードを削除できません。注入されたサービスと動的バー値を使用して Foo のインスタンスを作成できるスプリング ファクトリを作成しようとしています。factory.create(bar). 値が不明で無制限Fooであるため、Bean は実行時にインスタンス化されます。bar

私は試してみました:

  • @Configuration、ただし、構成では、スプリングまたは動的パラメーターによって管理されていないパラメーターは許可されません。
  • Lookup メソッドには、引数なしのコンストラクターが必要です。

何か案が ?

ありがとう!

4

2 に答える 2

4

メソッドを参照してくださいApplicationContext.getBean(String name, Object... args)。パラメーターを使用して、Bean 作成に引数を渡すことができargsます。

于 2013-06-27T11:12:18.657 に答える
0

これを行う 1 つの方法として、アプリケーション コンテキスト XML でコンストラクター インジェクションを使用できます。

<bean name="foo" class="com.example.Foo">

   <constructor-arg index="0">Bar</constructor-arg>

</bean>

編集:それを逃した、この質問をチェックしてください:春に @Autowired を使用する方法

2番目の答え(私によるものではありません)

@Configurableここで注釈を使用できるようです。

于 2013-06-27T10:43:29.197 に答える