A state machine editot and runtime. Can be used to model simple workflow
xState编辑器是一个允许开发人员创建状态机的编辑器,通过通用直观的解决方案。
状态机用处极其广泛,适用于订单,用户,任务等等具有确定状态的领域模型
- 结合模型和代码
- 可以创建仅包含状态和变迁的状态机
- 也可以提供状态变迁时的触发器
- EntryAction
- ExitAction
- TransitionAction
有些时候需要传递业务信息给状态机的各个触发器做判断,虽然缺省的Event类里面没有这些属性,但由于Event 是个普通类,用户可以自定义自己的Event子类,在子类里面定义需要的业务属性。允许时可以在各个Action里面cast 标准的Event 为你自定义的Event类即可获得额外的属性。
有时需要保存状态机的当前状态,并在之后恢复。可以通过调用StateMachine的restore(String id),传入需要恢复的状态id实现。
在状态机没有处于End状态的情况下,可以通过调用reset()方法重置状态机的状态。
Depenency
<dependency>
<groupId>com.xrosstools</groupId>
<artifactId>xstate</artifactId>
<version>0.9.0</version>
</dependency>
repository
<repositories>
<repository>
<id>xtools-repo</id>
<url>https://raw.github.com/hejiehui/xtools-repo/mvn-repo/</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>