SSM框架整合Activiti工作流

本文详细介绍了如何将Activiti工作流引擎与Spring框架整合,包括在Maven项目中添加依赖,配置spring-activiti.xml文件以注入Activiti的服务,并在spring-context.xml中引用该配置。此外,还提供了一个测试类用于生成Oracle数据库所需的Activiti表。

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

Activiti5与Spring整合比较简单,其基本思想就是,通过Spring的IOC容器来管理Activiti的流程引擎实例以及相关服务

1.首先在maven项目的pom.xml文件中引入activiti工作流的jar包:

<dependency>  
	<groupId>org.activiti</groupId>  
	<artifactId>activiti-engine</artifactId>  
	<version>5.22.0</version>  
</dependency>  
		  
<dependency>  
	<groupId>org.activiti</groupId>  
	<artifactId>activiti-spring</artifactId>  
	<version>5.22.0</version>  
</dependency>

2.接着创建一个spring-activiti.xml的文件,用来注入spring的6个service服务,方便我们日后在controller层或者service层中注入这些service,配置如下:

<?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:p="http://www.springframework.org/schema/p"
       xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:aop="http://www.springframework.org/schema/aop" xmlns:util="http://www.springframework.org/schema/util"
       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
       http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">

	<!-- 配置流程引擎配置信息对象 -->
	<bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration"
		p:dataSource-ref="dataSource"
		p:transactionManager-ref="transactionManager"
		p:databaseSchemaUpdate="true"
		p:jobExecutorActivate="false"
		p:databaseType="oracle"
  		p:activityFontName="宋体"
  		p:labelFontName="黑体"
  		p:xmlEncoding="utf-8"/>
  		
	<!-- 配置流程引擎 -->	
  	<bean id="processEngine" class="org.activiti.spring.ProcessEngineFactoryBean"
 	    p:processEngineConfiguration-ref="processEngineConfiguration"/>
		
	<!-- 配置六个服务Bean -->
	<bean id="repositoryService" factory-bean="processEngine" 
		factory-method="getRepositoryService" />
	<bean id="runtimeService" factory-bean="processEngine" 
			factory-method="getRuntimeService" />
	<bean id="taskService" factory-bean="processEngine" 
			factory-method="getTaskService" />
	<bean id="historyService" factory-bean="processEngine" 
			factory-method="getHistoryService" />
	<bean id="formService" factory-bean="processEngine" 
			factory-method="getFormService" />
	<bean id="identityService" factory-bean="processEngine" 
			factory-method="getIdentityService" /> 
	
</beans>

3.上面的activiti文件配置好之后我们在spring-context.xml文件中引用我们的activiti整合文件:

<import resource="spring-activiti.xml"/>

4.当activiti框架的jar包都下载完毕之后,我们就可以创建activiti项目所需要的数据表了,我们先来写一个测试类,用来生成数据表,本人用的是oracle数据库,所以jdbc驱动JdbcDriver是oracle数据库所需要的驱动。

import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngineConfiguration;

/**
 * 创建数据库表
 */
public class CreateDatabaseTest {
	public static void main(String[] args) {
		// 创建流程引擎配置信息对象
		ProcessEngineConfiguration pec = ProcessEngineConfiguration
					.createStandaloneProcessEngineConfiguration();
		// 设置数据库的类型
		pec.setDatabaseType("oracle");
		// 设置创建数据库的方式
		// ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE(true): 如果没有数据库表就会创建数据库表,有的话就修改表结构. 
		// ProcessEngineConfiguration.DB_SCHEMA_UPDATE_FALSE(false): 不会创建数据库表
		// ProcessEngineConfiguration.DB_SCHEMA_UPDATE_CREATE_DROP(create-drop): 先创建、再删除.
		pec.setDatabaseSchemaUpdate("true");
		// 设置数据库驱动
		pec.setJdbcDriver("oracle.jdbc.OracleDriver");
		// 设置jdbcURL
		pec.setJdbcUrl("jdbc:oracle:thin:@//218.16.125.265:2008/baruser");
		// 设置用户名
		pec.setJdbcUsername("dengnew");
		// 设置密码
		pec.setJdbcPassword("dengxxxx");		
		// 构建流程引擎对象
		ProcessEngine pe = pec.buildProcessEngine(); // 调用访方法才会创建数据表		
		// 调用close方法时,才会删除
		pe.close();
	}

}

https://www.tpyyes.com/a/javaweb/36.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ZHOU_VIP

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

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

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

打赏作者

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

抵扣说明:

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

余额充值