19. Using StateContext

StateContext在处理状态机时是最重要的对象之一,因为它被传递到各种方法和回调中,以给出状态机的当前状态以及它可能发生的情况。 如果简化一点,它可以被认为是StateContext传递的当前状态机阶段的快照。

在Spring Statemachine 1.0.x中,StateContext的用法相对简单,就如何将它用作简单的POJO来传递东西而言。 从Spring Statemachine 1.1.x开始,它的角色通过使其成为状态机中的一等公民而得到了极大的改善。

在整体StateContext中可以用作。

  • 如果已知,则访问当前消息,事件或其MessageHeaders。
  • 访问状态机扩展状态。
  • 访问StateMachine本身。
  • 访问可能的状态机错误
  • 如果适用,访问当前的转换。
  • 访问状态机可能从中进入和去往的源和目标状态。
  • 按照第19.1节“阶段”中的描述访问当前阶段。

StateContext被传入与Action和Guard等用户交互的各种组件中。

19.1 Stages

阶段是状态机当前与用户交互的阶段的表示。

当前阶段是

EVENT_NOT_ACCEPTED,

EXTENDED_STATE_CHANGED,

STATE_CHANGED,

STATE_ENTRY,

STATE_CHIT,

STATEMACHINE_ERROR,

STATEMACHINE_START,

STATEMACHINE_STOP,

TRANSITION,

TRANSITION_START和TRANSITION_END,它们看起来非常熟悉,因为这些匹配用户可以如何与监听器进行交互,如第21章监听状态机事件中所述。

results matching ""

    No results matching ""