最近项目需要,学习了一下activiti5这个框架。
介绍工作流
网上工作流的定义一大堆,这里就不去复制了,通俗的理解,工作流就是类似OA系统中请假审批、报销审批等一系列流程,下级提交的申请只有直系领导才能审批,其他人是没有权限的,而只有直系领导审批通过后,直系领导的直系领导才可以看到申请,并进行审批,以此类推。。。
准备环境
1) JDK1.6或者更高版本(我这里是使用1.8)
2) 支持的数据库有:h2, mysql, oracle, postgres, mssql, db2等。
3) springboot以及SpringDataJpa配置
4) 开发环境为eclipse 与 IDEA 2018 (练习为eclipse 项目开发为IDEA)
5)工作流版本(activiti5.22.0)这里是项目需要,个人推荐学6或7
安装流程设计器(IDEA)
1.搜索插件
点击菜单【File】-->【Settings...】打开【Settings】窗口。
点击左侧【Plugins】按钮,在右侧输出"actiBPM",点击下面的【Search in repositories】链接会打开【Browse Repositories】窗口。
一开始没有安装过这个插件的会显示No Plugins found.search inreposties
进入【Browse Repositories】窗口,选中左侧的【actiBPM】,点击右侧的【Install】按钮,开始安装。
最后完成安装。
安装流程设计器(eclipse插件)
方案一:
在有网络的情况下,安装流程设计器步骤如下:
1) 打开 Help -> Install New Software. 在如下面板中:
2) 在如下Install界面板中,点击Add按钮:
3) 然后填入下列字段
Name: Activiti BPMN 2.0 designer
Location: http://activiti.org/designer/update/
4) 回到Install界面,在面板正中列表中把所有展示出来的项目都勾上:
5) 点击复选框
在Detail部分记得选中 "Contact all updates sites.." , 因为它会检查所有当前安装所需要的插件并可以被Eclipse下载.
6) 安装完以后,点击新建工程new->Other…打开面板,如果看到下图内容:
说明安装成功了。
方案二
在没有网络的情况下,安装流程设计器步骤如下:
首先下载离线插件包:
https://files.cnblogs.com/files/lm970585581/activiti.zip
将压缩包解压后
这两个文件夹复制到Eclipse根目录下 ,重启即可
注意:
打开菜单Windows->Preferences->Activiti->Save下流程流程图片的生成方式:
虽然流程引擎在单独部署bpmn文件时会自动生成图片,但在实际开发过程中,自动生成的图片会导致和BPMN中的坐标有出入,在实际项目中展示流程当前位置图会有问题。
所在完成以上配置后,会由我们自己来管理流程图片。在发布流程时把流程规则文件和流程图片一起上传就行了。
准备Activiti5开发环境
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.3</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring-boot-starter-basic</artifactId>
<version>5.22.0</version>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring</artifactId>
<version>5.22.0</version>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-modeler</artifactId>
<version>5.22.0</version>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-diagram-rest</artifactId>
<version>5.22.0</version>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring-boot-starter-jpa</artifactId>
<version>5.22.0</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
spring.jpa.hibernate.ddl-auto=update
spring.jpa.database=MYSQL
spring.jpa.show-sql=true
spring.activiti.check-process-definitions=false
spring.datasource.url=jdbc:mysql://?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false
spring.datasource.username=
spring.datasource.password=
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.maxActive=20
spring.datasource.initialSize=4
spring.datasource.maxWait=60000
spring.datasource.minIdle=1
spring.datasource.testWhileIdle=true
spring.security.user.name=
spring.security.user.password=
环境准备完成!