前言碎语
本文描述的是怎么将activiti优雅的整合进你的spring boot应用,并增强你的activiti管理功能,此文流程性不强,有spring boot和activiti使用经验的阅读最佳,仅供参考
官方开发指南:http://activiti.org/userguide/index.html
参考博文:https://spring.io/blog/2015/03/08/activiti-and-spring-boot
本文源代码实例:https://coding.net/u/kailingchen/p/bootActiviti/git
spring boot整合activiti只需两步
1.添加boot的activiti模块
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring-boot-starter-basic</artifactId>
<version>${activiti.version}</version>
</dependency>
2.添加你的流程图文件
在你boot项目的资源文件resources下新建文件夹processes,将bpmn文件置于processes文件夹下面
注:spring boot容器启动的时候会去这个文件夹下找xxx.bpmn20.xml和xx.bpmn的文件并装载自动发布,如下图类可说明
如果你想自定义,也很简单,也上图所示,只需在application.properties中加上spring.activiti.xxx=xxx等配置就好,如下图
至此,你的spring上下文就装载了如processEngineConfiguration,processEngine,repositoryService,runtimeService,taskService,identityService等常用的操作对象实例了
增强你的activiti,发布restful管理activiti resource
1.添加依赖
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring-boot-starter-rest-api</artifactId>
<version>${activiti.version}</version>
</dependency>
2.添加用户组以及用户,只有验证通过才能管理activiti
你可以直接数据库手动添加表名如(act_id_group,act_id_user),也可以通过api完成,如下
Group group = identityService.newGroup("user"); group.setName("users"); group.setType("security-role"); identityService.saveGroup(group); User admin = identityService.newUser("kl"); admin.setPassword("kl"); identityService.saveUser(admin);完成以上步骤后,启动容器,访问相关查询resource,会先让你认证,认证采用的spring 的security,通过后就可以拥有所有的activiti的resource服务了,这样有个好处就是可轻松的做到工作流服务和业务应用服务的分离,这个对于多应用使用工作流来说简直就是福音
这里列举几个常用的restful:如流程发布列表 http://127.0.0.1:8082/repository/deployments
运行时流程:http://127.0.0.1:8082/runtime/process-instances/
当然接口不仅是这些,更多的接口信息可从spring 的RequestMappingHandlerMapping : Mapped日志得知,或者官方文档http://activiti.org/userguide/index.html#_rest_api,或者还有一种方式得知,请看下文
增强你的activiti,发布restful管理boot应用
1.添加依赖
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring-boot-starter-actuator</artifactId>
<version>${activiti.version}</version>
</dependency>
2.相关接口信息可从spring 的RequestMappingHandlerMapping : Mapped日志得知,如
使用http://host//mappings就可以查看所有的restful接口信息了