目录
1. 流程的部署
1.1. Flowable
默认的部署
默认情况下,我们放在 resources/processes
目录下的所有流程文件会自动被部署,流程文件的后缀有两种形式 bpmn20.xml
或者 bpmn
。当然,无论是存放流程文件的位置,还是流程文件的格式,都是可以定制的,涉及到的属性主要有三个,可在 application.properties
中进行配置
flowable.check-process-definitions=false
flowable.process-definition-location-prefix=classpath*:/processes/
flowable.process-definition-location-suffixes=**.bpmn20.xml,**.bpmn
flowable.check-process-definitions
:表示在项目启动的时候,去检查文件目录是否有对应的流程文件,默认值为true
表示如果有流程文件就自动部署,false
表示不检查,那么也就不会自动部署flowable.process-definition-location-prefix
:这个是流程文件的位置,默认就是classpath*:/processes/
,当然开发者也可以进行配置flowable.process-definition-location-suffixes
:这个是流程文件的后缀,默认有两个,分别是**.bpmn20.xml 和 **.bpmn
,当然开发者也可以进行配置
1.2. Flowable
的动态部署
有的时候,我们的流程可能并不是提前设计好的,而是项目启动之后,动态部署的,例如项目启动成功之后,动态上传一个流程的 XML
文件进行部署,这也是一种比较常见的场景,对于这种情况,我们可以按照如下方式进行部署
@RestController
public class ProcessDeployController {
@Autowired
RepositoryService repositoryService;
@PostMapping("/deploy")
public RespBean deploy(MultipartFile file) throws IOException {
DeploymentBuilder deploymentBuilder = repositoryService.createDeployment()
.category("javaboy的工作流分类")
.name("javaboy的工作流名称")
.addInputStream(file.getOriginalFilename(), file.getInputStream())
.key("javaboy的工作流key");
Deployment deployment = deploymentBuilder.deploy();
return RespBean.ok("部署成功",deployment.getId());
}
}
- 关键的方法是
addInputStream
,通过该方法去指定流程文