3

私は春のフレームワーク(v3.2.1)を使用するプロジェクトに取り組んでいますが、私は春のやり方に慣れていないので、現在次の問題に悩まされています....私を正しい方向に向けることができます:

実行時に Job クラスのインスタンスを作成しようとしています。Job クラス自体は、Job クラスで @Autowired であるいくつかのサービスを使用します。自動配線はスプリング コンテナの制御下にあるオブジェクトに対してのみ機能するため、最初に頭に浮かんだのは次のことでした。

@Component
@Scope("prototype")
class Job{

  @Autowired
  MyService service

  String name
  String group
  .
  .
  .

  public Job(){

  }

  public Job(String name, String group){

    this.name = name;
    this.group = group;

  }

  public void start(){

    //some code, use of service etc.
  }

}

これで、アプリケーション コンテキストを使用して、 を呼び出して新しい Job を取得できますcontext.getBean("job")。新しいジョブ インスタンスは、既定のコンストラクターを呼び出すことによって作成されるため、新しいジョブ インスタンスを取得した後で、名前とグループ パラメーターを設定する必要があります。

Job j = context.getBean("job");

j.setName("Test");
j.setGroup("someGroup");
j.start()

現在、実行時にジョブのインスタンスを作成するためのパラメーターを指定する方法があるかどうかを調べようとしています。ジョブ クラスの新しいオブジェクトを別の状態でインスタンス化できるようにします。

上で述べたように、私は現在ここで立ち往生しており、春の経験が不足しているため、これを達成するための最良の方法を見つけるのに苦労しています. おそらく、そのようなことを行うための普遍的に受け入れられている方法またはパターンがあるでしょう。春の経験が豊富な人が私を正しい方向に向けることができれば幸いです.

どうもありがとう!

4

2 に答える 2

1

これは(http://static.springsource.org/spring/docs/current/javadoc-api/org/springframework/beans/factory/BeanFactory.html#getBean(java.lang.String、java.lang.Object。。 。)必要な方法。

于 2013-03-13T15:44:05.497 に答える
1

BeanFactory getBean(String name, Object[] args)

これを使用して、引数の配列を渡すことができます

于 2013-03-13T15:50:29.543 に答える