【Activiti】 Activiti工作流引擎 - 实际项目中的封装应用 【精品】

本文介绍了一位开发者在实际项目中应用Activiti工作流引擎的过程,包括选择工作流引擎的原因、解决开发中遇到的问题,以及逐步封装的步骤:引入依赖、配置Spring、创建工厂类、定义接口和封装业务类。目前已经实现业务审批操作,后续会分享更多关于创建工作流和审批流程的细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

         5月份的时候,公司需要开发一个新项目,其中涉及到审批的相关业务流程,我首先到网络上面搜索到了常用的工作流引擎有哪些,我这里不做介绍了,最终选择了activiti工作流引擎。

           在工作了7年多的时间里,我从来没有用到过工作流,但是对我们开发者来说,工作流引擎这种技术,只要我们深入研究该工作流引擎的API,也就能够很清楚的去使用工作流引擎了,但是在实际的开发中,业务对接工作流遇到了很多的问题,我都是一个一个的挑灯夜战的去攻关,一个一个去击破,最终把遇到的所有问题都解决了。然后我根据我的想法去封装了这套在业务中需要使用的工作流的体系,下面直接上代码。

        第一步,首先项目用的是maven,我们首先引入依赖

	<activiti.version>5.18.0</activiti.version>

    <dependency>
		<groupId>org.activiti</groupId>
		<artifactId>activiti-engine</artifactId>
	</dependency>
	<dependency>
		<groupId>org.activiti</groupId>
		<artifactId>activiti-bpmn-model</artifactId>
	</dependency>
	<dependency>
		<groupId>org.activiti</groupId>
		<artifactId>activiti-bpmn-converter</artifactId>
	</dependency>
	<dependency>
		<groupId>org.activiti</groupId>
		<artifactId>activiti-process-validation</artifactId>
	</dependency>
	<dependency>
		<groupId>org.activiti</groupId>
		<artifactId>activiti-spring</artifactId>
	</dependency>
	<dependency>
          <groupId>org.activiti</groupId>
          <artifactId>activiti-diagram-rest</artifactId>
          <version>${activiti.version}</version>
    </dependency>
    <dependency>
          <groupId>org.activiti</groupId>
          <artifactId>activiti-json-converter</artifactId>
          <version>${activiti.version}</version>
    </dependency>
    <dependency>
          <groupId>org.activiti</groupId>
          <artifactId>activiti-image-generator</artifactId>
          <version>${activiti.version}</version>
    </dependency>
	

第二部,添加Spring的配置文件src/main/resources/spring/applicationContext-activiti.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" 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/tx http://www.springframework.org/schema/tx/spring-tx.xsd">
	
	 <!-- Activiti引擎配置 -->
	<bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
		<property name="dataSource" ref="dataSource" />
		<property name="transactionManager" ref="transactionManager" />
		<!-- 如果表不存在,就创建表,如果表存在,就直接操作 -->
		<property name="databaseSchemaUpdate" value="true" />
		<property name="jobExecutorActivate" value="false" />
		<property name="deploymentResources" value="classpath*:bpmn/*.bpmn20.xml" />
	</bean>

	<!-- Activiti引擎工厂 -->
	<bean id="processEngineFactory" class="org.activiti.spring.ProcessEngineFactoryBean">
		<property name="processEngineConfiguration" ref="processEngineConfiguration" />
	</bean>

	<!-- Activiti的服务 -->
    <bean id="repositoryService" factory-bean="processEngineFactory" factory-method="getRepositoryService" />
    <bean id="runtimeService" factory-bean="processEngineFactory" factory-method="getRuntimeService" />
    <bean id="formService" factory-bean="processEngineFactory" factory-method="getFormService" />
    <bean id="identityService" factory-bean="processEngineFactory" factory-method="getIdentityService" />
    <bean id="taskService" factory-bean="processEngineFactory" factory-method="getTaskService" />
    <bean id="historyService" factory-bean="processEngineFactory" factory-method="getHistoryService" />
    <bean id="managementService" factory-bean="processEngineFactory" factory-method="getManagementService" />
	
</beans>

第三部,我们创建一个工厂类,把工作流引擎需要用到的service服务引入依赖

import org.activiti.engine.FormService;
import org.activiti.engine.HistoryService;
import or
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

燕郊炒家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值