Activiti与SpringBoot项目整合

本文介绍如何在Spring Boot项目中集成Activiti流程引擎,并通过示例代码演示流程定义的部署,包括使用类路径资源及ZIP文件的方式。

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

1.添加activiti-spring-boot-starter-basic依赖

		<dependency>
			<groupId>org.activiti</groupId>
			<artifactId>activiti-spring-boot-starter-basic</artifactId>
			<version>5.21.0</version>
		</dependency>

2.编写ActivitiConfig类

         配置 org.activiti.spring.SpringProcessEngineConfiguration类注入数据源和事务模板管理事务

@Configuration
public class ActivitiConfig extends AbstractProcessEngineAutoConfiguration {

	// 注入数据源和事务管理器
	@Bean
	public SpringProcessEngineConfiguration springProcessEngineConfiguration(
			@Qualifier("dataSourceSyDev") DataSource dataSource,
			@Qualifier("transactionManager") PlatformTransactionManager transactionManager,
			SpringAsyncExecutor springAsyncExecutor) throws IOException {
		return this.baseSpringProcessEngineConfiguration(dataSource, transactionManager, springAsyncExecutor);
	}
}

3.编写ActivitiTest进行部署测试。

    注:(若不指定路径,默认去资源目录下的processes文件夹寻找xxx.bpmn和xxx.png资源部署)
@RunWith(SpringRunner.class)
@SpringBootTest
public class ActivitiTest {
	@Autowired
	private RepositoryService repositoryService;
	@Autowired
	private RuntimeService runtimeService;
	@Autowired
	private IdentityService identityService;
	@Autowired
	private TaskService taskService;
	@Autowired
	private HistoryService historyService;
	@Autowired
	private ProcessEngineConfigurationImpl processEngineConfiguration;

	/**
	 * 布置流程 (操作数据表 act_re_deployment,act_re_procdef,act_ge_bytearray
	 * 
	 */
	@Test
	public void createDeployment() {
		DeploymentBuilder builder = repositoryService.createDeployment();
		builder.addClasspathResource("processes/MyProcess.bpmn");
		builder.addClasspathResource("processes/MyProcess.png");
		Deployment deploy = builder.deploy();
		System.out.println("布署id=" + deploy.getId());
	}
}

4.zip方式进行动态部署

/**
	 * 部署流程定义使用zip方式 (操作数据表 act_re_deployment,act_re_procdef,act_ge_bytearray
	 * 
	 */
	@Test
	public void createDeploymentByZip() {
		
		InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("processes/MyProcess.zip"); // 获取指定文件资源流

		ZipInputStream zipInputStream = new ZipInputStream(inputStream); // 实例化zip输入流对象

		// 获取部署对象
		Deployment deployment = repositoryService.createDeployment() // 创建部署
				.name("审批流程") // 流程名称
				.addZipInputStream(zipInputStream) // 添加zip是输入流
				.deploy(); // 部署
		System.out.println("流程部署ID=" + deployment.getId() + ",流程部署Name=" + deployment.getName());
	}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值