由原型bean创建的Spring StateMachine

时间:2018-10-04 17:07:08

标签: spring-statemachine

所以我有以下这种情况:

@Component
@Scope("prototype")
public class MyStateMachineFactory {

 public StateMachine<States, Events> build() {
   StateMachineBuilder.Builder<States, Events> builder = StateMachineBuilder.builder();

   builder.configureStates();
   // rest of the sate machine config


    return builder.build()
 }
}

现在,将这个原型连接到这样的Spring Singleton bean中

@Component
public class Processor {

  @Autowired
  private final ObjectFactory<MyStateMachineFactory> factory;

  public process() {
     factory.getObject().build(); 
     // rest of the processing
  } 
}

所以我的原型bean将仅存在于process方法内部。

我的问题是:我定义并绑定到该原型bean中的Guards和Actions可以是简单的单例bean(或者它们也需要是原型)?没有任何守卫或行动维持任何状态。只是定义了Guard.evaluate和Action.execute方法。我怀疑应该没有线程问题,因为将StateContext作为参数传递给这些方法,但是我想知道在某种情况下,Guard和/或Action是否在幕后采用StateContext进行了调整可能存在线程问题

0 个答案:

没有答案