关于如何集成大家可以看我之前博客,接下来给大家分享我所总结的自动部署流程的两种方法:
- 修改yaml文件关于activiti的配置
- 在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一定要与流程图名称保持一致,不然扫描流程图会报错。。