flowable使用示例
时间: 2025-04-30 22:48:19 浏览: 25
Flowable 是一款轻量级、功能强大的工作流引擎,它可以帮助开发者轻松地集成业务流程管理 (BPM) 功能到应用程序中。下面是一个简单的 Flowable 使用示例,展示了如何创建和部署一个 BPMN 流程,并启动流程实例。
### 环境准备
首先需要引入 Flowable 的依赖包,假设你正在使用 Maven 构建项目,在 `pom.xml` 中添加以下内容:
```xml
<dependency>
<groupId>org.flowable</groupId>
<artifactId>flowable-spring-boot-starter-process</artifactId>
<version>x.x.x</version><!-- 替换成最新版本 -->
</dependency>
```
接下来编写 Java 类来演示基本操作步骤:
#### 定义并部署 BPMN 文件
将 `.bpmn20.xml` 格式的文件放在资源目录下(如 src/main/resources/processes),例如名为 simple-process.bpmn20.xml:
```xml
<?xml version="1.0" encoding="UTF-8"?>
<definitions ... >
<process id="simpleProcess" name="Simple Process">
<!-- Define start event, user tasks and end events here... -->
</process>
</definitions>
```
该 XML 应描述完整的工作流结构,包括开始事件、用户任务和服务任务等元素之间的连接顺序。
然后通过程序加载此模型并在运行时注册至 Flowable 引擎内:
```java
import org.flowable.engine.RepositoryService;
// other imports...
@Repository // Spring 注解用于标记持久层组件
public class MyRepositoryServiceImpl implements IMyRepositoryService {
private final RepositoryService repositoryService;
@Autowired
public MyRepositoryServiceImpl(RepositoryService repositoryService){
this.repositoryService = repositoryService;
}
@Override
public void deployProcessDefinition() {
InputStream inputStream = getClass().getClassLoader()
.getResourceAsStream("processes/simple-process.bpmn20.xml");
Deployment deployment = repositoryService.createDeployment()
.addInputStream("simple-process.bpmn20.xml", inputStream)
.deploy();
System.out.println("Deployed process definition with key '"
+ deployment.getKey()+"'");
}
}
```
#### 启动新流程实例
一旦定义好所需的任务节点并且完成了流程模板的发布之后,就可以尝试去触发一个新的实例了:
```java
import org.flowable.engine.RuntimeService;
//other imports ...
@Service
public class WorkflowStarterService {
private final RuntimeService runtimeService;
@Autowired
public WorkfowStarterService(RuntimeService runtimeService){
this.runtimeService=runtimeService;
}
/**
* Starts a new instance of the given process.
*/
public String startNewInstance(String businessKey){
return runtimeService.startProcessInstanceByKey(
"simpleProcess",businessKey).getId();
}
}
```
以上就是关于 Flowable 工作流的一个简单入门案例说明啦!
阅读全文
相关推荐


















