我有为三个不同实体提供处理的流程。因此,我有具有公共流状态的父流定义,并且在具体流定义中,我用真实数据和动作实现扩展了该流。
我想将处理实体的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在哪里。它是无状态的,因此序列化它是没有用的,而且它包含自动装配的 dao 变量,其实现使用无法序列化的 HibernateDaoSupport。
有没有办法克服这个问题?我有一个解决方案,但这不是很方便,因为我需要在每个具体的处理器方法调用的具体流定义样板代码中编写。
<action-state id="prepareReview" parent="common#prepareReview">
<evaluate expression="concreteProcessor.prepare(modelInstance)" />
</action-state>
这有点麻烦。