工作流
工作流(Workflow):说的直白一点就是业务上一个完整的审批流程;例如:员工的入职,请假出差,采购等等;还有一些关键业务订单申请,合同审核这些过程都是工作流;
工作流的情况:也可不使用activiti框架,通过数据库的状态值进行实现,即如果审批通过则就将状态值改为另一个状态值即可;但是这种方法的缺点是耦合性太高;但是如果使用activiti就可以解决这种情况的发生,
关于activiti框架的简介
出差申请的审批流程
上面的出差流程其实就是xml文件,下面是xml的部分代码的实现;
关于activiti的框架的使用
activiti的开发环境的使用
在使用activiti只需引入下面的依赖,或者使用.bpmn文件只需要使用一种即可;
数据库的支持,在这里使用的是mysql数据库;
关于从idea上下载activiti的插件,在settings里的plugin面搜索actiBPM即可搜索到actiBPM插件点击下载即可;
具体的详情网址:下载actiBPM的步骤
注意:关于actiBPM插件值维护到idea2019版本,所以,在2019版本之后就不能直接在settings里面直接下载插件;
另一种方法则是直接从官网上直接下载:下载actiBPM的地址
下载完成之后直接点击在文件夹中的位置
activiti的数据库的支持
注意⚠️:mysql的版本不能低于5.1.21这个版本;
创建数据库,在mysql的工具上进行创建,数据库的名字是随意取的;
在pom文件中引入依赖
pom文件引入的依赖
<properties>
<slf4j.verion>1.6.6</slf4j.verion>
<log4j.version>1.2.12</log4j.version>
<activiti.verson>7.0.0.Beta1</activiti.verson>
</properties>
<dependencies>
<!-- https://mvnrepository.com/artifact/org.activiti/activiti-engine -->
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-engine</artifactId>
<version>7.0.0.Beta1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.activiti/activiti-spring -->
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring</artifactId>
<version>7.0.0.Beta1</version>
</dependency>
<!--bpmn的模型处理-->
<!-- https://mvnrepository.com/artifact/org.activiti/activiti-bpmn-model -->
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-bpmn-model</artifactId>
<version>7.0.0.Beta1</version>
</dependency>
<!--bpmn转换-->
<!-- https://mvnrepository.com/artifact/org.activiti/activiti-bpmn-converter -->
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-bpmn-converter</artifactId>
<version>7.0.0.Beta1</version>
</dependency>
<!--bpmn json数据的转换-->
<!-- https://mvnrepository.com/artifact/org.activiti/activiti-json-converter -->
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-json-converter</artifactId>
<version>7.0.0.Beta1</version>
</dependency>
<!--bpmn的布局-->
<!-- https://mvnrepository.com/artifact/org.activiti/activiti-bpmn-layout -->
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-bpmn-layout</artifactId>
<version>7.0.0.Beta1</version>
<scope>test</scope>
</dependency>
<!--mysql驱动-->
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.40</version>
</dependency>
<!--mybatis-->
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>
<!--连接池-->
<!-- https://mvnrepository.com/artifact/commons-dbcp/commons-dbcp -->
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/junit/junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!--log4j-->
<!-- https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.12</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.2.12</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.6.6</version>
<scope>test</scope>
</dependency>
创建log4j的文件
我们使用log4j日志包,可以对日志进行配置
在resource下创建properties文件
文件的内容如下
使用工作流通常使用的是activiti框架
下面是2020版本的idea软件,所以需要从网站直接下载jar包才可以使用这个框架;
activiti框架的jar包的下载
activiti的配置文件
安装完成之后就会有BPMN文件
项目的创建
创建maven工程
以上是activiti核心依赖
工作流的代码:工作流
工作流的自定义的实现:自定义的实现