目前在工作流所使用较多的开源框架一般是:activiti,jpbm,flowable和Camunda,关于他们之间的总结可以查看:
https://blog.csdn.net/supersai/article/details/97393132
https://blog.csdn.net/qq_30739519/article/details/82493456?tdsourcetag=s_pctim_aiomsg
至于他们之间的历史,首先是jboss旗下的jpbm发展到jbpm4 的时候,创始人不满jbpm5的架构,离开了jbpm,基于jbpm4发展出了activiti 5,所以activiti第一个版本是从activiti 5(2010年发布)开始的。后来activiti贡献者之一camunda基于activiti5 开发了camunda项目,在16年的时候,activiti 的团队成员又有分歧离开activiti,基于Activiti v6 beta4发展出了Flowable。这就是这几个框架的关系吧。
说到工作流就一定会涉及到BPMN规范,这个规范目前最新是BPMN2,这个大家可以去搜规范文档去了解一下大概就知道整个工作流业务的情况。其实开源的bpm框架还有很多,我常用的就是activiti
在这里介绍下activiti 5/ 6 / 7 刚开始可能的疑惑,activiti 5 是2010就开发的了,那时只有spring没有spring boot,所以要和spring boot集成的可以用activiti-spring。而activiti6是和spring boot 1.X有集成的,有个
activiti-spring-boot-starter-basic
的starter,但是如果要用spring boot2的话可能会有些地方会报错,例如:
@SpringBootApplication(exclude = SecurityAutoConfiguration.class) // springboot2.0集成activiti6要加后面这个,因为6比较老版本
如果spring boot2+activiti6没加这个exclude = SecurityAutoConfiguration.class启动的时候是会报错的,当然我们也可以通过
activiti-spring 来集成spring boot2 + activiti6.而activiti7和spring-boot2 是原生集成的,当然你也可以自己来做