其他分享
首页 > 其他分享> > Activiti(一)

Activiti(一)

作者:互联网

Activiti(一)

目录

需求

在实际社会生产环境中,我们存在这样的需要,即需要由一个人发起一项活动,这个活动涉及到多个参与者,且可能位于不同的空间中。这样的一个活动就是流程,比如我们常见的请假过程,就是一个流程:由请假人发起请假(填写请假表单),之后由部门领导或老师审批,一直到最终部门审批。

为了更加方便的处理上述过程(自动化处理),流程支持工具出现了,比如我们这里主要介绍的Activiti

原理




使用Activiti



Activiti服务架构图

Activiti服务架构图

流程引擎配置文件

activiti.cfg.xmlActiviti默认的配置文件,该配置文件类似于Spring的配置文件,在其中主要配置数据源、事务以及Activiti的配置,如ProcessEngineConfiguration的配置。下面的事例是一个基本的流程配置文件,定义了数据源和流程引擎。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="
		http://www.springframework.org/schema/beans 
		http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context 
		http://www.springframework.org/schema/context/spring-context.xsd
		http://www.springframework.org/schema/tx 
		http://www.springframework.org/schema/tx/spring-tx.xsd
		http://www.springframework.org/schema/aop 
		http://www.springframework.org/schema/aop/spring-aop.xsd
		">
	
	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
		<property name="driverClassName" value="com.mysql.cj.jdbc.Driver"></property>
		<property name="url" value="jdbc:mysql://localhost:3306/activiti"/>
		<property name="username" value="username"/>
		<property name="password" value="password"/>
	</bean>
	
	<!-- 使用脱机方式创建对象 -->
	<bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
		<property name="dataSource" ref="dataSource"></property>
		<!-- 设置是否自动生成数据表 -->
		<property name="databaseSchemaUpdate" value="true"></property>
	</bean>

</beans>

ProcessEngineConfiguration

ProcessEngine

Service(各种服务)的创建

在架构图中的末端,是一些具体的Service API,如何创建这些服务的对象呢?

如前面所述,ProcessEngine是一个引擎,提供调用各种服务接口的方法,故当然可以通过ProcessEngine创建这些Service对象。

详述各种Service

RepositoryService

RuntimeService

TaskService

HistoryService

ManagementService

简单实例

要使用Activiti处理流程业务,在上述理论部分也提到,首先需要为你的开发环境提供支持开发的各种插件,具体见上面的内容。

在做好准备工作之后,就可以开始项目的开发了。

(1)流程定义

(2)部署流程定义

(3)启动一个流程实例

(4)任务查询

(5)任务处理

上面这个流程示例就是一个简单的请假流程,从流程的定义、流程的部署、流程实例的启动以及流程各结点任务的完成。需要说明的是,上面的这个示例是一个单独运行的Activiti流程,没有真正整合到带有流程的Web项目中。

? flowable

标签:Activiti,流程,任务,实例,act,ProcessEngine
来源: https://blog.csdn.net/weixin_45125841/article/details/116567084