Springboot2.0 + activiti6.0自动部署流程图

关于如何集成大家可以看我之前博客,接下来给大家分享我所总结的自动部署流程的两种方法:

  1. 修改yaml文件关于activiti的配置
    Springboot2.0 + activiti6.0自动部署流程图_第1张图片
  2. 在SpringBoot项目启动的时候自动执行部署方法
    1)要将yaml文件中的check-process-definitions(自动检查,部署流程定义文件)修改为false
    2)新建实现类实现ApplicationRunner中run方法,并在类上方添加@Component注解
package com.komlin.controller;

import org.activiti.engine.RepositoryService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.stereotype.Component;

import java.io.IOException;

/**
 * Description:部署流程图
 * date: 2020/7/8 17:07
 *
 * @author mt
 * @since JDK 1.8
 */
@Component
public class ApplicationRunnerImpl implements ApplicationRunner {

    @Autowired
    RepositoryService repositoryService;

    @Override
    public void run(ApplicationArguments args) throws Exception {
        Resource[] resources = null;
        try {
            resources = new PathMatchingResourcePatternResolver().getResources("classpath:processes/*.bpmn");
        } catch (IOException e) {
            e.printStackTrace();
        }
        for (Resource r : resources) {
            String addr = "processes/" + r.getFilename();
            repositoryService.createDeployment().addClasspathResource(addr).deploy();
        }
    }
}

注:新建的流程图中的id一定要与流程图名称保持一致,不然扫描流程图会报错。。

你可能感兴趣的:(java,spring,boot,activiti)