Spring StateMachine создан по прототипу боба - PullRequest
0 голосов
/ 04 октября 2018

Итак, у меня есть следующий сценарий:

@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, как этот

@Component
public class Processor {

  @Autowired
  private final ObjectFactory<MyStateMachineFactory> factory;

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

Так что мой бин-прототип будет существовать только внутри процессаmethod.

Мой вопрос будет таким: Защитники и Действия, которые я определяю и подключаю к этому bean-прототипу, могут быть простыми одноэлементными bean-компонентами (или они также должны быть прототипами)?Никакая Охрана или Действие не поддерживают никакого состояния.Это просто методы Guard.evaluate и Action.execute, которые определены.Я подозреваю, что не должно быть никаких проблем с потоками, потому что StateContext передается в качестве параметра этим методам, но я хочу знать, если как-то за кадром Guard (s) и / или Action (s) закаляются с StateContext, в этом случаемогут быть проблемы с потоками

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...