Как получить доступ к StateContext в перехватчике

#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.