Spring-statemachine第1篇-概念

Statemachine即状态机是有限状态自动机的简称,是现实事物运行规则抽象而成的一个数学模型。

四大概念

下面来给出状态机的四大概念。

  1. State ,状态。一个状态机至少要包含两个状态。例如上面自动门的例子,有 open 和 closed 两个状态。
  2. Event ,事件。事件就是执行某个操作的触发条件或者口令。对于自动门,“按下开门按钮”就是一个事件。
  3. Action ,动作。事件发生以后要执行动作。例如事件是“按开门按钮”,动作是“开门”。编程的时候,一个 Action 一般就对应一个函数。
  4. Transition ,变换。也就是从一个状态变化为另一个状态。例如“开门过程”就是一个变换。

从另一个角度来说,

flowchart LR
   现态\nState-1 == 变换\nTransition ==> 次态\nState-2

Event则是启动变换的因,action是变换的具体实现,次态是变换的结果。

Spring Statemachine is a framework for application developers to use state machine concepts with Spring applications. Spring Statemachine 是应用程序开发人员在Spring应用程序中使用状态机概念的框架。

Spring Statemachine 提供如下特色:

  • Easy to use flat one level state machine for simple use cases.(易于使用的扁平单级状态机,用于简单的使用案例。)
  • Hierarchical state machine structure to ease complex state configuration.(分层状态机结构,以简化复杂的状态配置。)
  • State machine regions to provide even more complex state configurations.(状态机区域提供更复杂的状态配置。)
  • Usage of triggers, transitions, guards and actions.(使用触发器、transitions、guards和actions。)
  • Type safe configuration adapter.(应用安全的配置适配器。)
  • State machine event listeners.(状态机事件监听)
  • Spring IOC integration to associate beans with a state machine.(Spring IOC集成将bean与状态机关联起来)