Я пытаюсь реализовать пружинный конечный автомат и при каждом переходе состояния хотел ответить пользователю перед переходом из состояния A в состояние B - PullRequest
0 голосов
/ 27 января 2020

Предположим, у меня есть три состояния A, B, C, и конечный автомат инициализируется, если пользователь запускает какой-либо вызов API. если произойдет переход из состояния A -> B -> C, то в состоянии B требуется отправить ответ пользователю, а затем пользователь будет вызывать тот же API, добавляя некоторую полезную нагрузку, а затем он должен go состояние C .

Возможно ли достичь этого бизнес-сценария с помощью пружинного автомата. Если возможно, то как мы можем это сделать. Если это не возможно из пружинного автомата, какие рамки я могу использовать для достижения этого варианта использования

1 Ответ

0 голосов
/ 24 февраля 2020

Да, вы можете достичь этого варианта использования,

Я, но вам нужно где-то сохранить информацию, чтобы вы знали, какую информацию передавать и в каком состоянии, вам необходимо сбросить конечный автомат.

В конечном автомате имеются расширенные элементы управления, с помощью которых можно сбросить конечный автомат до определенного состояния. Я предполагаю, что вы используете фабрику конечных автоматов для получения конечного автомата.

 stateMachine.getStateMachineAccessor().doWithAllRegions(access -> access
          .resetStateMachine(new DefaultStateMachineContext<>(state, null, null,null)));

С помощью приведенного выше кода вы получите конечный автомат, который уже находится в требуемом состоянии, после чего вы можете передать контекст магазин с необходимой информацией.

...