springboot 整合 activiti工作流 学习

springboot + activiti工作流 学习

第一步:

         引入依赖:
            <!-- activiti -->
             	<dependency>
	             	<groupId>org.activiti</groupId>
		            <artifactId>activiti-spring-boot-starter-basic</artifactId>
		            <version>6.0.0</version>
	            </dependency>
	        <!--整合activiti的 druid 要求的版本为0.2.16 或 1.0.9,百度上说是官方的bug-->
            	<dependency>
	            	<groupId>com.alibaba</groupId>
		           <artifactId>druid</artifactId>
	            	<version>0.2.16</version>
	            </dependency>

第二步:application.yml文件配置

       # activiti default configuration
       #在activiti的默认配置中,process-definition-location-prefix 是指定activiti流程描述文件的前缀(即路径),
       #启动时,activiti就会去寻找此路径下的流程描述文件,并且自动部署;suffix 是一个String数组,表示描述文件的默    认后缀名,默认以上两种。
       activiti:
         database-schema-update: true #是否每次都更新数据库
         # 自动部署验证设置:true-开启(默认)、false-关闭
         check-process-definitions: true # activti是否自动部署
         process-definition-location-prefix: classpath:/processes/
         #process-definition-location-suffixes: .bpmn
         history-level: full
         #db-history-used: true
         db-identity-used: false

第三步:建processes文件夹

在这里插入图片描述

id要唯一
在这里插入图片描述

activiti工作流6大service服务的简单介绍

https://blog.youkuaiyun.com/a8532156/article/details/78427545

创建activiti提供的各种服务 ActivitiConfig

package com.shiro_learning.demo.config.activiti;

import org.activiti.engine.*;
import org.activiti.spring.SpringProcessEngineConfiguration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.Resource;
import org.springframework.core.io.ResourceLoader;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import javax.sql.DataSource;
import java.io.IOException;

     /**
           创建activiti提供的各种服务
      */

 @Configuration
public class ActivitiConfig{
private Logger logger = LoggerFactory.getLogger(ActivitiConfig.class);

@Value("${spring.activiti.database-schema-update}")
private String databaseSchemaUpdate;

@Value("${spring.activiti.db-identity-used}")
private boolean dbIdentityUsed;

@Value("${spring.datasource.url}")
private String dbUrl;

@Bean
public ProcessEngine processEngine(DataSourceTransactionManager transactionManager, DataSource dataSource) throws IOException {
    logger.info("==========activiti=======开始==============");
    SpringProcessEngineConfiguration configuration = new SpringProcessEngineConfiguration();

    /*  自动部署已有的流程文件
    作用相当于 (据bpmn文件部署流程repositoryService.createDeployment().addClasspathResource("singleAssignee.bpmn").deploy();)*/

    Resource[] resources = new PathMatchingResourcePatternResolver().getResources(ResourceLoader.CLASSPATH_URL_PREFIX + "processes/*.bpmn");
    configuration.setTransactionManager(transactionManager);
    //设置数据源
    configuration.setDataSource(dataSource);
    //是否每次都更新数据库
    //configuration.setDatabaseSchemaUpdate(databaseSchemaUpdate);
    configuration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_FALSE);
    //configuration.setAsyncExecutorActivate(false);
    configuration.setDeploymentResources(resources);
    //设置是否使用activti自带的用户体系
    configuration.setDbIdentityUsed(dbIdentityUsed);
    return configuration.buildProcessEngine();
}


/**
 * 工作流仓储服务
 * @param processEngine
 * @return
 */

@Bean
public RepositoryService repositoryService(ProcessEngine processEngine) {
    return processEngine.getRepositoryService();
}


/**
 * 工作流运行服务
 * @param processEngine
 * @return
 */

@Bean
public RuntimeService runtimeService(ProcessEngine processEngine) {
    return processEngine.getRuntimeService();
}

/**
 * 工作流任务服务
 * @param processEngine
 * @return
 */

@Bean
public TaskService taskService(ProcessEngine processEngine) {
    return processEngine.getTaskService();
}


/**
 * 工作流历史数据服务
 * @param processEngine
 * @return
 */

@Bean
public HistoryService historyService(ProcessEngine processEngine) {
    return processEngine.getHistoryService();
}


/**
 * 工作流管理服务
 * @
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

刘德华一不小心就打代码

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

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

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

打赏作者

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

抵扣说明:

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

余额充值