springBoot集成Activiti6
数据库:MysqL IDE:Spring Tool Suite build工具:Maven 项目版本:springBoot1.5.10 + JDK1.8 + Maven3.0.5 一.构建springBoot1.创建项目 (1)使用idea创建springboot项目很快,可参考如下链接: (2)使用eclipse安装STS插件的方式,参考链接: (3)STS下载地址: 使用STS创建项目: 新建项目–选择Spring Boot下的Spring Starter Project–Next 选择SpringBoot的版本: 创建成功后的目录结构: 给pom.xml添加以下依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>MysqL</groupId> <artifactId>MysqL-connector-java</artifactId> </dependency> 2.运行项目 找到整个项目的入口类:MiaoApplication 这个类有一个@SpringBootApplication注解,这是整个Spring Boot的核心注解,它的目的就是开启Spring Boot的自动配置。需要在这个类上再添加一个@RestController注解,使之变为一个Controller,然后里边提供一个地址转换方法,如下: @RestController @SpringBootApplication public class MiaoApplication { public static void main(String[] args){ SpringApplication.run(MiaoApplication.class,args); } @GetMapping(value = "/") String index(){ return "Hello Spring Boot!"; } } 然后运行项目,控制台没有报错信息就说明成功了,在浏览器上可以直接访问: 二.Activiti6安装运行1.下载和安装Activiti6 链接: https://pan.baidu.com/s/1livSJdUm3doUzBZI5AKJWA 2.使用tomcat配置与运行 wars目录下的三个war包默认使用的是h2内存数据库,重启服务器数据就会消失。将3个war包复制到tomcat的webapps的目录下,更改tomcat的server.xml文件的Context 为: <Context docBase="F:apache-tomcat-7.0.59webappsactiviti-app.war" path="/" reloadable="true"/> 然后双击bin目录下的startup.bat文件启动tomcat,打开浏览器即可访问: **PS:**如果你的startup.bat双击后自动关闭了,有可能和我一样是java.lang.OutOfMemoryError异常,需要在bin/catalina.bat文件中找到以下一行: echo Using CATALINA_BASE: "%CATALINA_BASE%" 在这行的上面添加: set JAVA_OPTS=%JAVA_OPTS% -server -XX:PermSize=128M -XX:MaxPermSize=512m 重新运行startup.bat即可。 三.Activiti6的使用Activiti官方发布的activiti-app可以说是一个较为完善的样例,可以通过它来了解Activiti的大部分功能。 下面我们以请假为例,定义一个工作流程。我们知道,请假流程中涉及到的人员有员工和主管,那么首先需要新建这两种类型的用户,之后定义请假流程。 1.新建用户 点击Idennity management,进入Users模块,点击“Create user”按钮新建需要请假的员工: 2.定义流程 点击Kickstart app,进入Processes,点击“Create Process”创建流程。 我们定义了一个开始事件和一个结束事件以及两个用户任务,我们需要把用户任务分配给对应的人员。 点击第一个用户任务“提出请假申请”,修改它的“Assignment”属性,将当前任务分配给Employee: 同样,需要把第二个用户任务分配给manager。任务分配成功后,点击左上角的保存按钮保存当前流程。 3.发布流程 在activiti-app中,一个App可以包含多个流程模型,因此在发布流程前,需要新建一个App并设置它的流程模型。 创建完成后,将之前创建的流程绑定到该App上,之后发布该App: 发布成功后,使用Employee账号登录,可以看到发布成功的HR App,进入该App,点击Processes菜单,可以看到“Start a process”按钮,点击后即可启动一个请假流程。 启动后就由employee用户完成第一个请假申请: 之后可登录manager用户进行审核操作,同样点击HR App,进入后点击Processes菜单,以同样方式操作完成任务后,该流程结束。 四.Spring Tool Suite中使用Activiti61.修改配置文件application.properties,保存为application.yml 2.在pom.xml中添加Activiti6的依赖 前端使用了thymeleaf模板进行展示,因此也需要引入它的依赖: <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-spring-boot-starter-basic</artifactId> <version>6.0.0</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> 3.在资源目录下创建processes目录 用于保存.bpmn后缀的流程图,这个目录名千万不要手抖打错了,相信我,程序一定会报错的~ 4.安装Activiti插件 https://blog.csdn.net/qq_33547950/article/details/54926435 5.在processes文件下新建bpmn文件 6.使用Activiti插件设计流程图 需要在IDE里调出properties面板配置参数: 1).General配置Id和文字,注意Id不能重复; 2)Main config里面配置当前任务的代理人Assignee; 3)Candidate users可以配置当前任务的候选人组,具体应用场景: 当审核者有两个或多个以上,请假申请提交到他们手上后,有一个人认领了该任务,即代表申请被审批通过,这种情况下就需要使用候选人组配置。 对于有两个出口连线的任务,我们通过设置连线flow的流程变量的方式来自动控制流程的流转: 7.编写流程代码 说明:
补充: 3.启动Spring Boot工程,默认会自动部署相应路径下流程定义文件;自动创建Activiti ProcessEngine Bean;自动注册Activiti Service;创建Job Executor。所以我们不用像网上的大多数教程那样配置引擎,直接使用对应的服务即可: 以上配置教程个人原创,有理解不对的地方欢迎提出建议 (编辑:北几岛) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |