私は、実行時に2つのタスク(java.util.concurrent.Callable
's)を作成して並列処理を行うシングルトンSpring Beanを持っています。現在、Callable
はシングルトンBeanの内部クラスとして定義されており、シングルトンBeanはnew Task(in)
でインスタンス化するだけでシンプトンを作成します。in
は実行時にのみ既知のパラメータです。Spring:実行時パラメータをとるSpring Beanをインスタンス化する方法は?
私はタスクのcall()
メソッドをトランザクションにしたいので、標準のトップレベルクラスに内部タスククラスを抽出したいので、私はそれをSpring Beanにする必要があります。
私は自分のシングルトンにTask
の工場を与える必要がありますが、タスクはコンストラクタパラメータとしてランタイム値をとるプロトタイプのSpring Beanでなければなりません。どうすればこれを達成できますか?
@BorisTreukhov:これはマルチスレッドアプリケーションのテストに関する質問ではありませんが、これはSpringに関する質問です。実際の問題から気をそらすので、私は理由2を私の質問から取り除くつもりです。 –
参照: http://stackoverflow.com/questions/8772585/spring-bean-with-dynamic-constructor-value – quaylar
@Bossie私は私のコメントを削除し、[OK]、ところで私は、最も簡単な方法は、個別のサービスを作成することだと思いますそれらのメソッドをトランザクションとしてデコレートし、シングルトンに挿入し、サービスメソッドに "in"パラメータを渡します。キスの場合は –