Можно использовать StateMachine factory и получать новый экземпляр для каждого бизнес-процесса.
@Configuration
@EnableStateMachineFactory
public class BusinessProcessStateMachineConfig
extends EnumStateMachineConfigurerAdapter<States, Events> {
@Override
public void configure(StateMachineStateConfigurer<States, Events> states)
throws Exception {
states
.withStates()
.initial(States.S1)
.end(States.SF)
.states(EnumSet.allOf(States.class));
}
}
Затем вы можете добавить фабрику в свои службы и получить экземпляры.Вы даже можете иметь более одной фабрики (например, если вы хотите иметь совершенно разные конечные автоматы в одной кодовой базе).
@EnableStateMachineFactory(name = "one")
Указание имени позволяет существовать нескольким фабрикам и нескольким экземплярам sm каждой фабрики.быть введенным в услуги.