SpringBoot中可以使用Activiti、Camunda等开源工作流引擎来实现工作流表单可视化配置。以下以Activiti为例,介绍如何实现。
- 引入依赖
在pom.xml文件中添加以下依赖:
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring-boot-starter-basic</artifactId>
<version>${activiti.version}</version>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-form-engine</artifactId>
<version>${activiti.version}</version>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-ui-modeler-app</artifactId>
<version>${activiti.version}</version>
</dependency>
其中,${activiti.version}是Activiti的版本号。
- 配置
在application.yml或application.properties文件中添加以下配置:
spring:
activiti:
database-schema-update: true
form-properties:
all-properties-required: false
date-format: yyyy-MM-dd
dateTime-format: yyyy-MM-dd'T'HH:mm:ssZ
display-empty-fields: false
display-all-values: false
line-break-mode: white-space
textfield-max-length: 128
rest:
api-root-uri: http://localhost:8080/activiti-app/api/
其中,rest.api-root-uri是Activiti-App的API根路径,用于获取Activiti Modeler的前端应用。
- 启动Activiti-App
下载并启动Activiti-App,访问http://localhost:8080/activiti-app即可进入Activiti Modeler的前端应用。
- 设计工作流
在Activiti Modeler中设计工作流,具体操作参见官方文档。
- 部署
将工作流部署到SpringBoot中,可以使用以下代码:
@Repository
public class ActivitiRepositoryImpl implements ActivitiRepository {
@Autowired
private ProcessEngine processEngine;
@Override
public String deploy(String bpmnFileName, String pngFileName) {
RepositoryService repositoryService = processEngine.getRepositoryService();
DeploymentBuilder deploymentBuilder = repositoryService.createDeployment().name(bpmnFileName);
deploymentBuilder.addClasspathResource("processes/" + bpmnFileName);
deploymentBuilder.addClasspathResource("processes/" + pngFileName);
Deployment deployment = deploymentBuilder.deploy();
return deployment.getId();
}
}
其中,bpmnFileName和pngFileName分别为工作流定义文件和图片文件。
- 运行
启动SpringBoot应用,访问http://localhost:8080/modeler即可进入工作流设计器界面。在设计器中选择已经部署的工作流即可进行前端表单可视化配置。