Activiti是什么
当你打开这篇博客时,说明你还不知道Activiti是什么,那么工作流引擎对你来说也是新的概念,我这里不去copy百度百科了,简单说Activiti是一个开源的自动化业务工作引擎,担有一点不要和Android的Activity搞混了。
为什么使用工作流引擎
简单来说,当你在复杂的业务流程中过多的使用if…else那是超级崩溃的,我不知道你们有没有这样的经历,我曾经在一个项目中做新闻模块时,那个时候还是一个新手,在返回国内新闻,省内新闻,市内新闻等等时过多的使用if…else…,首先代码可读性很差,其次维护起来相当难受,尤其是像请假等审批模块更是广泛应用,至于以后的工作中能不能用到,我是这样理解的,几乎我从事职业的招岗位所要求的技术,我都会去学习,但时间有限,精力有限,况且学完以后不用的话,肯定会忘得一干二净,但还是要学习的,我学一个新技术不去深入研究它,只去了解它,使用它,至少和同事或者朋友聊天的时候能听懂,不至于听天书一样。当公司项目有一天需要用到这个技术了,我在花几天时间,复习一下,研究一下源码,我觉得这种比较好,但假如说你在需要某项技术的时候再从头学习,表面看没什么问题,但是当你在不了解未学习的技术时,去解决问题可能会导致你使用更好的解决方案。
快速开始一个案例
我习惯使用SpringBoot,因为可以快速搭建环境,首先加入Pom依赖
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-engine</artifactId>
<version>5.21.0</version>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring</artifactId>
<version>5.21.0</version>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-bpmn-model</artifactId>
<version>5.21.0</version>
</dependency>
如果你使用Maven创建的项目记得加入junit依赖,然后生成activiti的25张表,首先创建一个数据库,然后创建一个测试类如下:
/**
* 生成Activiti所需要的25张表
*/
@Test
public void testCreateTable() {
// 获取流程引擎配置
ProcessEngineConfiguration configuration=ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration();
// 配置驱动
configuration.setJdbcDriver("com.mysql.jdbc.Driver");
// 配置连接地址
configuration.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/db_activiti?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC");
// 配置用户名
configuration.setJdbcUsername("root");
// 配置密码
configuration.setJdbcPassword("oywh");
// 自动创建表,并且会更新
configuration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
// 获取流程引擎
ProcessEngine processEngine = configuration.buildProcessEngine();
}
直接运行Junit就可以在Mysql中创建25张表,当然这种使用配置类的方法不太好,下面介绍一种使用配置类的方法,首先在resources下创建配置文件activiti.cfg.xml如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/db_activiti" />
<property name="jdbcDriver" value="com.mysql.jdbc.Driver" />
<property name="jdbcUsername" value="root" />
<property name="jdbcPassword" value="oywh" />
<property name="databaseSchemaUpdate" value="true" />
</bean>
</beans>
然后编写测试用例如下:
@Test
public void testCreateTableByXml() {
// 获取流程引擎配置
ProcessEngineConfiguration configuration = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml");
// 获取流程引擎对象
ProcessEngine processEngine = configuration.buildProcessEngine();
}
下面再idea上安装activiti插件actiBPM,去学这个技术的基本都会装
点击菜单【File】–>【Settings…】打开【Settings】窗口。
点击左侧【Plugins】按钮,在右侧输出"actiBPM",点击下面的【Search in repositories】链接会打开【Browse Repositories】窗口。
进入【Browse Repositories】窗口,选中左侧的【actiBPM】,点击右侧的【Install】按钮,开始安装。
安装完成后,会提示【Restart IntelliJ IDEA】,重启IDEA即可完成安装
点击菜单【File】–>【New】–>【BpmnFile】
输入文件名称,点击【OK】按钮
.
会出现如下绘制界面,按住鼠标左键拖拽右侧图标,将其拖下左侧界面上,同样的方式再拖拽其他图标
右击bpmn文件,选择【Refactor】–>【Rename】,修改其扩展名为.xml,点击【Refactor】,改完以后xml文件会报错,不用管。接着右击此xml文件,选择【Diagrams】–>【Show BPMN 2.0 Diagrams…】,打开如下界面
点击上图中【Export to file】图标,弹出【Save as image】窗口,点击【OK】即可导出png图片
再转成图片的过程中如果文字出现乱码,在IDEA的安装目录,在下面两个文件中加上-Dfile.encoding=UTF-8
好了,今天就先说到这里吧