spring框架中spring-statement-core状态机源码分析
Posted mask哥
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring框架中spring-statement-core状态机源码分析相关的知识,希望对你有一定的参考价值。
- 状态机概念:有限状态机是一种用来进行对象行为建模的工具,其作用主要是描述对象在它的生命周期内所经历的状态序列,以及如何响应来自外界的各种事件。在电商场景(订单、物流、售后)、社交(IM消息投递)、分布式集群管理(分布式计算平台任务编排)等场景都有大规模的使用。
- 状态机的要素
状态机可归纳为4个要素,即现态、条件、动作、次态。“现态”和“条件”是因,“动作”和“次态”是果。详解如下:
①现态:是指当前所处的状态。
②条件:又称为“事件”。当一个条件被满足,将会触发一个动作,或者执行一次状态的迁移。
③动作:条件满足后执行的动作。动作执行完毕后,可以迁移到新的状态,也可以仍旧保持原状态。动作不是必需的,当条件满足后,也可以不执行任何动作,直接迁移到新状态。
④次态:条件满足后要迁往的新状态。“次态”是相对于“现态”而言的,“次态”一旦被激活,就转变成新的“现态”了。
- 状态机动作类型
进入动作(entry action):在进入状态时进行
退出动作:在退出状态时进行
输入动作:依赖于当前状态和输入条件进行
转移动作:在进行特定转移时进行
- java常见状态机框架
spring-statemachine-core、stateless4j、squirrel-foundation、akka fsm - spring-statement-core框架状态机实现要点总结:
1.定义状态和事件枚举
2. 为状态机定义使用的所有状态以及初始状态
3.为状态机定义状态的迁移动作
4.为状态机指定监听处理器
-
状态机框架源码分析
状态机实例:
事件状态机监听器:
以上是关于spring框架中spring-statement-core状态机源码分析的主要内容,如果未能解决你的问题,请参考以下文章