Итак, у меня есть следующий сценарий:
@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, в этом случаемогут быть проблемы с потоками