介绍
Activiti是一个开源的工作流引擎,而Spring是一个流行的Java开发框架。将Activiti和Spring集成在一起,可以使我们更方便地开发和管理工作流程。本文将介绍如何整合Activiti和Spring,并展示一些示例代码。
整合配置
-
首先,需要在项目的依赖中添加Activiti和Spring的相关依赖。
<dependency> <groupId>org.activiti</groupId> <artifactId>activiti-engine</artifactId> <version>7.1.0</version> </dependency> <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-spring</artifactId> <version>7.1.0</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>5.2.6.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.2.6.RELEASE</version> </dependency>
-
在Spring配置文件中添加Activiti的相关配置。
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="url" value="jdbc:mysql://localhost:3306/activiti" /> <property name="driverClassName" value="com.mysql.cj.jdbc.Driver" /> <property name="username" value="root" /> <property name="password" value="123456" /> </bean> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean> <bean id="processEngineConfiguration" class="org.activiti.spring.ProcessEngineFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="transactionManager" ref="transactionManager" /> <property name="databaseSchemaUpdate" value="true" /> </bean> <bean id="processEngine" factory-bean="processEngineConfiguration" factory-method="getObject" /> <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" />
上述配置中,我们指定了数据库连接、事务管理器、以及Activiti的各种服务。
示例代码
以下是一个简单的示例代码,展示了如何使用Activiti和Spring。
@Service
public class WorkflowService {
@Autowired
private RuntimeService runtimeService;
@Autowired
private TaskService taskService;
public void startProcess(String processKey) {
Map<String, Object> variables = new HashMap<>();
variables.put("user", "John Doe");
runtimeService.startProcessInstanceByKey(processKey, variables);
}
public List<Task> getTasks(String assignee) {
return taskService.createTaskQuery().taskAssignee(assignee).list();
}
public void completeTask(String taskId) {
taskService.complete(taskId);
}
}
在上述代码中,我们通过@Autowired注解将RuntimeService和TaskService注入到WorkflowService中,然后我们可以使用这些服务开启流程、查询任务、以及完成任务。
结论
通过将Activiti和Spring整合在一起,我们可以更加方便地开发和管理工作流程。本文介绍了如何进行整合配置,并展示了一个示例代码。希望对你有所帮助!
参考链接:Activiti 官方文档
本文来自极简博客,作者:樱花飘落,转载请注明原文链接:Activiti 整合spring