Activiti 整合spring

樱花飘落 2024-02-22 ⋅ 15 阅读

介绍

Activiti是一个开源的工作流引擎,而Spring是一个流行的Java开发框架。将Activiti和Spring集成在一起,可以使我们更方便地开发和管理工作流程。本文将介绍如何整合Activiti和Spring,并展示一些示例代码。

整合配置

  1. 首先,需要在项目的依赖中添加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>
    
  2. 在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 官方文档


全部评论: 0

    我有话说: