spring statemachine
wphmoon123
欢迎来到真实的荒漠
展开
-
spring statemachine的企业可用级开发指南6-持久化
目前为止,我们都是从状态流程的开始阶段创建一个状态机,然后一路走下去。但在实际业务中,状态机可能需要在某个环节停留,等待其他业务的触发,然后再继续下面的流程。比如订单,可能在支付环节需要等待一个剁手的用户隔天再下单,所以这里面涉及到一个创建的状态机该何去何从的问题。在spring statemachine中,给出来的办法就是保存起来,到需要的时候取出来用。1、持久化到本地内存 ...原创 2019-05-08 18:55:36 · 1597 阅读 · 0 评论 -
spring statemachine的企业可用级开发指南8-复杂状态机的实现,choice,guard和action
1、讲讲复杂流程的需求 除了上面文章里面提到的一根筋状态机流程,实际的企业应用中状态机的流程会更加复杂,而我们最常用到的就是choice。它类似于java的if语句,作为条件判断的分支而存在,让我们先看一张图: 这张图表现的是一个表单(form)的整个状态流程:创建初始的空白表单(BLANK_FORM) 填写(WRITE)表单,成为填充完表单(FULL_FORM)...原创 2019-05-13 18:18:46 · 2888 阅读 · 4 评论 -
spring statemachine的企业可用级开发指南1-说些废话
1、背景在我打算学习spring statemachine的时候,我几乎看过了所有网上的中文教程,基本上都处于浅尝辄止的阶段,有几篇讲的比较深入的,都只是堆代码,具体用在什么地方,都语焉不详,我打算把我一路摸索的过程记录下来,方便大家能继续前行。2、spring statemachine是干啥用的spirng statemachine是干啥用的,这个其实是个问题来的...原创 2019-05-06 17:06:48 · 1330 阅读 · 0 评论 -
spring statemachine的企业可用级开发指南2-先跑起来
上一篇说了很多废话,这一篇就不唠叨,先跑起来1、来个spring boot去https://start.spring.io/新建一个springboot的项目,虽然我对spirngboot也有不少的牢骚,但作为demo的开始,还是一个很好用的脚手架,记得选spring statemachine,为了方便,我还选了web 模块点击generate project 下载到本地,用IDE...原创 2019-05-06 17:08:31 · 1494 阅读 · 0 评论 -
spring statemachine的企业可用级开发指南3-多个状态机共存
1、多个状态机的搞法 在实际的企业应用中,基本不可能只有一个状态机流程在跑,比如订单,肯定是很多个订单在运行,每个订单都有自己的订单状态机流程,但上一章的例子,大家可以试一下,当执行到一个状态时,再次刷新页面,不会有任何日志出现,当一个状态流程执行到某个状态,再次执行这个状态,是不会有任何输出的,因为状态机的机制是只有在状态切换的时候才会事件(event)触发,所以我们这一章讲多个状态机...原创 2019-05-06 17:09:50 · 2110 阅读 · 0 评论 -
spring statemachine的企业可用级开发指南4-多种状态机共存
在上一章的例子中,我们实现了多个状态机并存执行,不同的订单有各自的状态机运行,但只有一种状态机,这显然不能满足实际业务的要求,比如我就遇到了订单流程和公文审批流程在同一个项目的情况,所以我们这一章讲怎么让多种状态机共存。 我们先把上一章的例子状态机再复习一下,这是个订单状态机,流程图如下: 定义这个状态机我们用到了OrderEvents,Order...原创 2019-05-06 17:10:57 · 1251 阅读 · 0 评论 -
spring statemachine的企业可用级开发指南5-传递参数的message
在企业开发中,数据在不同的业务间传输是最常见的工作,所以虽然我们的主架构是用的状态机,也就是从流程状态的角度来看待这个项目,但在具体业务中,每个状态的转变中会牵涉到各类业务,这些业务有些需要收到状态机变化的通知,需要把状态值传递给业务类和业务方法,同样的,在处理状态变化是,也需要获取业务数据,方便不同的业务在同一个状态变化环节做各自的业务,下面我们就讲下这个数据在spring statemachi...原创 2019-05-06 17:12:22 · 2710 阅读 · 1 评论 -
spring statemachine的企业可用级开发指南7-伪持久化和中间段状态机
1、伪持久化和中间段的状态机 我们设想一个业务场景,就比如订单吧,我们一般的设计都会把订单状态存到订单表里面,其他的业务信息也都有表保存,而状态机的主要作用其实是规范整个订单业务流程的状态和事件,所以状态机要不要保存真的不重要,我们只需要从订单表里面把状态取出来,知道当前是什么状态,然后伴随着业务继续流浪到下一个状态节点就好了(流浪远方,流~浪~~)。 我们先实现一个State...原创 2019-05-10 11:27:14 · 1735 阅读 · 2 评论