55.java项目-activiti实战项目(1)-activiti基本介绍

1.流程

1.1什么是流程?

流程就是按照一定设计规则执行的程序,例如公司的请假流程,报销流程等等.

1.2 我们怎么进行流程开发?

如果我们不借用框架的情况下进行流程开发,通常是在数据库表用一个状态的字段来对流程进行控制,比如请假流程,状态1是开始流程,填写了请假单,状态2是部门经理审批,状态3是总经理审批,状态4是人事存档.我们每个用户根据自己的角色筛选对应状态下的表中数据,对表中数据进行修改审批,这样就能完成对流程的控制.

1.3传统流程开发模式下的优势与弊端

优势:

简单,简介,针对小型的固定流程的项目,我们可以考虑此开发模式

缺点:

1.每一项流程与代码高度耦合,如果我们经常需要修改流程,则需要修改大量的代码.
2.对于复杂流程控制不是很灵活,代码编写难度大.

2.activiti是什么?

2.1常用的流程框架有哪些?

Activiti
JBoss JBPM 6.5
JFlow 6.0
FixFlow 5.0

2.2activiti 的设计逻辑

activiti的设计逻辑其实也是通过数据库表来控制流程,只不过为了解决流程和代码高度耦合,由BPMI这个组织开发了一套流程执行的模板与符号,其实就是花了一张图,只是这张图的底层是以个xml文件,他主要是用来控制流程的.

所以其实activiti就是两部分组成:
第一,bpmn文件(底层是xml文件)画出流程图.
第二,activiti的jar包,解析出bpmn文件,根据bpmn文件来控制流程的执行.

2.3activiti常用名词词汇

流程:即设计的bpmn文件
流程部署:即将bpmn文件存放在数据表中.
流程定义:也就是将bpmn流程文件解析出来的全部东西.
流程实例:也就是流程定义的实例对象,例如,请假流程这是流程定义,张三发起请假,这是流程实例.
任务:当前账号或者员工的任务.
节点:当前流程的一个节点.

2.4常用表分析

activiti会连接数据库生成多张数据库表,根据版本的不同,可能会有23张或者24张或者25张表.这些表存放了全部流程相关的东西
在这里插入图片描述

3.activiti的下载与安装

为什么我们需要下载安装activiti组件呢?其实我们如果流程的bpmn文件不是我们编写的,是由他人写好拷贝给我们的,我们可以不用在eclipse或者idea上安装activiti组件,我们安装的组件其实就是为了画bpmn图而已.

3.1 eclipse下载安装activiti

3.1.1 方式一:在线安装
步骤:
1)help -> Install new Software
在这里插入图片描述
2)然后点击 Add
在这里插入图片描述
3)我们在Name上 写上 Activiti BPMN 2.0 designer
Location上写上 http://activiti.org/designer/update/ (插件更新地址)
在这里插入图片描述
3.1.2方式二:离线安装
步骤:
1)下载离线jar包
在这里插入图片描述
接下来有两种方式:
第一种
在这里插入图片描述
第二种在 help -> Install new Software
在这里插入图片描述
3.1.3验证是否安装成功
查看是否安装成功,在eclipse中,File–>New–>Other–>搜索activiti出现以下界面,安装成功。
在这里插入图片描述

3.2 idea下载安装activiti

3.2.1在线安装
搜索
在这里插入图片描述
安装
在这里插入图片描述
3.2.2 离线安装
步骤:
1)下载actiBPM.jar包,官网下载即可
在这里插入图片描述
2)本地导入插件jar包
在这里插入图片描述
3.2.3验证是否安装成功
右键-new,查看是否可以new bpmn file文件
在这里插入图片描述

4.bpmn的介绍及使用

4.1什么是bpmn?

由BPMI(The Business Process Management Initiative)开发了一套标准叫业务流程建模符号(BPMN - Business Process Modeling Notation)。简单点来说就是用来化流程图,画出的流程图底层是xml文件,可以被解析成一个个的节点.
画图:
在这里插入图片描述
xml文件
在这里插入图片描述

4.2 bpmn文件的作用?

作用:bpmn是用来画流程图的,底层是xml文件,可以被解析成一个个的节点.

4.3bpmn文件包括哪些组件?

开始节点: 流程的开始
结束节点: 流程的结束
任务节点: 中间的任务节点
泳道: 不知
网关: 做接下来的流处理
事件:不知

5.activiti的常用api

activiti的架构图
在这里插入图片描述
5.1 依赖的导入及配置文件的抒写
1).导入依赖

` <dependencies>
    <dependency>
        <groupId>org.activiti</groupId>
        <artifactId>activiti-engine</artifactId>
        <version>7.1.0.M1</version>
    </dependency>
    <dependency>
        <groupId>org.activiti</groupId>
        <artifactId>activiti-spring</artifactId>
        <version>7.1.0.M1</version>
    </dependency>

    <dependency>
        <groupId>org.activiti</groupId>
        <artifactId>activiti-bpmn-model</artifactId>
        <version>7.1.0.M1</version>
    </dependency>

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.32</version>
    </dependency>
    <!--引入druid数据源 -->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>1.1.12</version>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.4</version>
    </dependency>
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter</artifactId>
        <version>RELEASE</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-nop</artifactId>
        <version>1.7.2</version>
    </dependency>
</dependencies>

2).配置文件的抒写 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">

    <!--如果用processEngine.getDefaultEngine()方法获取默认的processEngine,则必须文件名为activiti.cfg.xml,并且bean的name也要为这个-->
    <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
        <property name="jdbcDriver" value="com.mysql.jdbc.Driver"></property>
        <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/actdb1??serverTimezone=GMT%2B8"></property>
        <property name="jdbcUsername" value="root"></property>
        <property name="jdbcPassword" value="root"></property>
        <property name="databaseSchemaUpdate" value="true"></property>
    </bean>
</beans>

5.2 processEngine对象的获取
配置文件:其实就是配置dataSource,配置数据库连接池.因为activiti要操作数据库表
这里是用的mysql数据库.

代码

//方法1 自己加载配置文件
	 	//1.获取configuration对象
        ProcessEngineConfiguration configuration = ProcessEngineConfiguration
                .createProcessEngineConfigurationFromResource("activiti.cfg.xml");
        //2.获取ProcessEngine对象
        ProcessEngine engine = configuration.buildProcessEngine();

//方法2,默认读取resources/ac
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值