- 博客(8)
- 资源 (1)
- 收藏
- 关注
原创 Spring StateMachine学习(五) —— 持久化
实际的企业应用中状态机的流程会更加复杂,而我们最常用到的就是choice。它类似于java的if语句,作为条件判断的分支而存在,让我们先看一张图:这张图表现的是一个表单(form)的整个状态流程:创建初始的空白表单( BLANK_FORM)填写(WRITE)表单,成为填充完表单(FULL_FORM)检查(CHEKC)表单如果是表单名(formName)不为null,表单成为待提交表...
2020-04-16 23:27:00 1245
原创 Spring StateMachine学习(四) —— 持久化
在实际业务中,状态机可能需要在某个环节停留,等待其他业务的触发,然后再继续下面的流程。比如订单,可能在支付环节需要等待一个剁手的用户隔天再下单,所以这里面涉及到一个创建的状态机该何去何从的问题。在spring statemachine中,给出来的办法就是保存起来,到需要的时候取出来用。持久化到本地内存首先要实现StateMachinePersist接口,这个接口非常简单,就是write和rea...
2020-04-16 22:34:21 4077 1
原创 Spring StateMachine学习(三) —— 传递参数
在企业开发中,数据在不同的业务间传输是最常见的工作,所以虽然我们的主架构是用的状态机,也就是从流程状态的角度来看待这个项目,但在具体业务中,每个状态的转变中会牵涉到各类业务,这些业务有些需要收到状态机变化的通知,需要把状态值传递给业务类和业务方法,同样的,在处理状态变化是,也需要获取业务数据,方便不同的业务在同一个状态变化环节做各自的业务,下面我们就讲下这个数据在spring statemachi...
2020-04-15 02:13:02 1629 1
原创 Spring StateMachine学习(二) —— 多个状态机
在实际的企业应用中,基本不可能只有一个状态机流程在跑,比如订单,肯定是很多个订单在运行,每个订单都有自己的订单状态机流程。我们就需要在每次使用时创建一个新的状态机。创建多个状态机通过 RefundReasonMachineBuilder 创建多个状态机。@Slf4j@Componentpublic class RefundReasonMachineBuilder { pub...
2020-04-15 01:53:58 2179
原创 Spring StateMachine学习(一) ——快速开始
有限状态机(Finite-state machine)有限状态机(英语:finite-state machine,缩写:FSM),简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。应用FSM模型可以帮助对象生命周期的状态的顺序以及导致状态变化的事件进行管理。将状态和事件控制从不同的业务Service方法的if else中抽离出来。FSM的应用范围很广,对于有复杂状态流,...
2020-04-14 03:50:59 1773 1
原创 MyBatis Plus主键设置策略
主键策略的几种类型public enum IdType { /** * 数据库ID自增 */ AUTO(0), /** * 该类型为未设置主键类型 */ NONE(1), /** * 用户输入ID * <p>该类型可以通过自己注册自动填充插件进行填充</p> */...
2020-04-10 16:52:32 2880
原创 Mybatis分页插件——PageHelper使用
Spring boot 整合 PageHelper 本文介绍了如何再使用PageHelper和PageHelper的原理。通过学习PageHelper的源码来实现我们自己的Mybatis的插件。pom.xml引入mybatis、druid和PageHelper<?xml version="1.0" encoding="UTF-8"?><project xm...
2020-04-09 02:15:02 208
转载 Guava学习(四)-重试
重试的使用场景在很多业务场景中,为了排除系统中的各种不稳定因素,以及逻辑上的错误,并最大概率保证获得预期的结果,重试机制都是必不可少的。尤其是调用远程服务,在高并发场景下,很可能因为服务器响应延迟或者网络原因,造成我们得不到想要的结果,或者根本得不到响应。这个时候,一个优雅的重试调用机制,可以让我们更大概率保证得到预期的响应。通常情况下,我们会通过定时任务进行重试。例如某次操作失败,则记录...
2020-04-09 02:01:28 763
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人