spring boot 集成flowable和表单
时间: 2023-08-29 15:05:34 浏览: 186
springboot-flowable:采用springboot2.0.5+flowable6.4.0搭建工作流微服务项目,对flowable做了使用封装,使用起来更加方便,并对外提供了restful风格的接口
集成Flowable和表单需要以下步骤:
1. 添加Flowable和表单的依赖
在pom.xml文件中,添加以下依赖:
```
<dependency>
<groupId>org.flowable</groupId>
<artifactId>flowable-spring-boot-starter</artifactId>
<version>6.6.0</version>
</dependency>
<dependency>
<groupId>org.flowable</groupId>
<artifactId>flowable-form-spring-boot-starter</artifactId>
<version>6.6.0</version>
</dependency>
```
2. 配置Flowable
在application.yml文件中,添加以下配置:
```
flowable:
database-schema-update: true
history-level: full
```
3. 创建表单
创建表单的方式有多种,可以使用Flowable自带的表单设计器,也可以使用其他第三方表单设计器。在这里,我们以Flowable自带的表单设计器为例。
在Flowable Modeler中,创建一个新的模型,选择"Form"类型。然后,根据需求添加表单字段,并保存表单模型。
4. 部署流程
在Flowable Modeler中,创建一个新的模型,选择"BPMN"类型。然后,根据需求添加流程节点和连线,并在需要的节点上添加表单。
保存流程模型后,将其导出为.bpmn20.xml格式的文件,然后将该文件放置在classpath:/processes目录下。
5. 编写代码
在Spring Boot的启动类中,添加以下代码:
```
@Configuration
public class MyProcessEngineConfiguration {
@Bean
public ProcessEngineConfiguration processEngineConfiguration(DataSource dataSource, PlatformTransactionManager transactionManager) {
SpringProcessEngineConfiguration config = new SpringProcessEngineConfiguration();
config.setDataSource(dataSource);
config.setTransactionManager(transactionManager);
config.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
config.setAsyncExecutorActivate(false);
config.setHistoryLevel(HistoryLevel.FULL);
return config;
}
@Bean
public ProcessEngineFactoryBean processEngine(SpringProcessEngineConfiguration configuration) {
ProcessEngineFactoryBean factoryBean = new ProcessEngineFactoryBean();
factoryBean.setProcessEngineConfiguration(configuration);
return factoryBean;
}
@Bean
public RepositoryService repositoryService(ProcessEngineFactoryBean factoryBean) throws Exception {
return factoryBean.getObject().getRepositoryService();
}
@Bean
public RuntimeService runtimeService(ProcessEngineFactoryBean factoryBean) throws Exception {
return factoryBean.getObject().getRuntimeService();
}
@Bean
public TaskService taskService(ProcessEngineFactoryBean factoryBean) throws Exception {
return factoryBean.getObject().getTaskService();
}
@Bean
public FormService formService(ProcessEngineFactoryBean factoryBean) throws Exception {
return factoryBean.getObject().getFormService();
}
@Bean
public HistoryService historyService(ProcessEngineFactoryBean factoryBean) throws Exception {
return factoryBean.getObject().getHistoryService();
}
@Bean
public ManagementService managementService(ProcessEngineFactoryBean factoryBean) throws Exception {
return factoryBean.getObject().getManagementService();
}
@Bean
public IdentityService identityService(ProcessEngineFactoryBean factoryBean) throws Exception {
return factoryBean.getObject().getIdentityService();
}
@Bean
public ProcessEngine processEngine(ProcessEngineFactoryBean factoryBean) throws Exception {
return factoryBean.getObject();
}
}
```
这段代码的作用是创建ProcessEngine和各种服务对象,并将它们注入到Spring容器中。
然后,在需要使用表单的地方,可以使用以下代码获取表单:
```
FormService formService = ...; // 从Spring容器中获取FormService
Object form = formService.getRenderedStartForm(processDefinitionId); // 获取流程定义的启动表单
```
以上就是集成Flowable和表单的步骤。需要注意的是,由于表单的渲染和提交是通过REST API实现的,因此还需要在应用程序中添加相关的REST API。
阅读全文