3 つの異なるエンティティの処理を行うフローがあります。したがって、共通のフロー状態を持つ親フロー定義があり、具体的なフロー定義では、そのフローを実際のデータとアクションの実装で拡張します。
エンティティを処理する Bean インスタンスを変数に格納したいので、親フロー定義でこの変数にアクセスできます。
親フロー定義内
<action-state id="prepareReview" >
<evaluate expression="processor.prepare(modelInstance)" />
<transition to="check" />
</action-state>
具体的なフロー定義では、
<on-start>
<set name="flowScope.processor" value="concreteProcessor"/>
</on-start>
concreteProcessor
必要な処理を実装するシングルトン Bean はどこにありますか。ステートレスであるため、シリアル化しても意味がありません。さらに、実装がシリアル化できない HibernateDaoSupport を使用する autowired dao 変数が含まれています。
この問題を克服する方法はありますか? 私は 1 つの解決策を持っていますが、具体的なプロセッサ メソッド呼び出しのすべての具体的なフロー定義定型コードを記述する必要があるため、あまり便利ではありません。
<action-state id="prepareReview" parent="common#prepareReview">
<evaluate expression="concreteProcessor.prepare(modelInstance)" />
</action-state>
それは少し面倒です。