#spring-statemachine
#spring-statemachine
Вопрос:
Я пытаюсь сохранить конечный автомат при отправке события. Для этого я использую следующий код.
engine.getStateMachineAccessor()
.doWithAllRegions(item -> {
item.addStateMachineInterceptor(new StateMachineInterceptorAdapter<String, String>() {
@Override
public void preStateChange(State state,
Message message,
Transition transition,
StateMachine stateMachine)
{
_Logger.info("In the pre-state change stage");
}
Из документации следует, что StateContext доступен только с событиями предварительного и последующего перехода, есть ли какой-либо способ получить его с помощью события preStateChange?
Комментарии:
1. В чем проблема использования предварительной передачи?
2. У него есть доступ только к StateContext, мне нужен метод, который имеет доступ как к StateContext, так и к сообщениям. Я пытаюсь отправить бизнес-данные через полезную нагрузку. Но, как оказалось, я могу использовать либо расширенные переменные, либо цепочку событий postTransition (сохранение StateContext в переменную) и postStateChange.
3. Да, если вы хотите передать некоторые бизнес-значения внутри SM, лучше использовать ExtendedContext.