https://github.com/nemoob/simpleflow
一个轻量级、易用的流程编排框架,专为简化复杂业务流程而设计。
https://github.com/nemoob/simpleflow
Last synced: 5 months ago
JSON representation
一个轻量级、易用的流程编排框架,专为简化复杂业务流程而设计。
- Host: GitHub
- URL: https://github.com/nemoob/simpleflow
- Owner: nemoob
- License: mit
- Created: 2025-07-16T03:36:31.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2025-08-18T16:03:45.000Z (10 months ago)
- Last Synced: 2025-08-18T17:27:29.151Z (10 months ago)
- Language: Java
- Homepage:
- Size: 121 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Simple Flow
[](https://opensource.org/licenses/MIT)
[](https://www.oracle.com/java/)
[](https://search.maven.org/)
一个轻量级、易用的流程编排框架,专为简化复杂业务流程而设计。
## ✨ 特性
- 🚀 **轻量级**: 零依赖核心,可独立运行或集成Spring Boot
- 📝 **多种定义方式**: 支持注解、YAML配置、编程式API
- 🔀 **丰富的执行模式**: 串行、并行、条件分支、脚本条件、循环执行
- 🛠️ **灵活的集成**: 支持Spring Boot自动配置和独立使用
- 📊 **完善的监控**: 内置执行日志和状态跟踪
- 🔧 **易于扩展**: 插件化架构,支持自定义执行器
## 🚀 快速开始
### 环境要求
- JDK 8+
- Maven 3.6+
### 安装
#### Maven
```xml
io.github.nemoob
simple-flow-core
1.0.0-SNAPSHOT
```
#### Spring Boot
```xml
io.github.nemoob
simple-flow-spring-boot-starter
1.0.0-SNAPSHOT
```
### 基本使用
#### 1. 注解方式(推荐)
```java
@Component
public class UserService {
@SimpleFlow("user-registration")
public void registerUser() {
validateUser();
saveUser();
sendWelcomeEmail();
}
@Step("validate-user")
public void validateUser() {
// 用户验证逻辑
}
@Step("save-user")
public void saveUser() {
// 保存用户逻辑
}
@Step("send-email")
public void sendWelcomeEmail() {
// 发送邮件逻辑
}
}
```
#### 2. YAML配置方式
```yaml
flows:
user-registration:
name: "用户注册流程"
steps:
- id: "validate-user"
type: "SERVICE"
beanName: "userService"
methodName: "validateUser"
- id: "save-user"
type: "SERVICE"
beanName: "userService"
methodName: "saveUser"
- id: "send-email"
type: "SERVICE"
beanName: "userService"
methodName: "sendWelcomeEmail"
```
#### 3. 编程式API
```java
// 创建流程
FlowDefinition flow = FlowDefinition.builder()
.id("user-registration")
.name("用户注册流程")
.addStep(StepDefinition.serviceStep("validate-user", "userService", "validateUser"))
.addStep(StepDefinition.serviceStep("save-user", "userService", "saveUser"))
.addStep(StepDefinition.serviceStep("send-email", "userService", "sendWelcomeEmail"))
.build();
// 执行流程
FlowEngine engine = new FlowEngine();
FlowExecutionResult result = engine.execute(flow, new FlowContext());
```
## 🔥 高级特性
### 条件分支
```yaml
steps:
- id: "age-check"
type: "SCRIPT_CONDITIONAL"
scriptType: "kotlin"
script: |
val age = context.get("age") as Int
age >= 18
trueSteps:
- id: "adult-process"
type: "SERVICE"
beanName: "userService"
methodName: "processAdult"
falseSteps:
- id: "minor-process"
type: "SERVICE"
beanName: "userService"
methodName: "processMinor"
```
### 并行执行
```yaml
steps:
- id: "parallel-tasks"
type: "PARALLEL"
steps:
- id: "send-email"
type: "SERVICE"
beanName: "notificationService"
methodName: "sendEmail"
- id: "send-sms"
type: "SERVICE"
beanName: "notificationService"
methodName: "sendSms"
```
## 📚 文档
- [快速开始指南](docs/quick-start.md)
- [API 文档](docs/api.md)
- [配置参考](docs/configuration.md)
- [示例项目](examples/)
## 🗺️ 开发计划
### ✅ 已完成
- 基础流程引擎
- 注解和配置支持
- 条件分支和循环
- Spring Boot集成
### 🚧 进行中
- 并行执行优化
- 监控和日志
### 📋 计划中
- 可视化界面
- 持久化支持
- 分布式执行
## 🤝 贡献
我们欢迎所有形式的贡献!
### 如何贡献
1. Fork 本仓库
2. 创建特性分支 (`git checkout -b feature/amazing-feature`)
3. 提交更改 (`git commit -m 'Add amazing feature'`)
4. 推送到分支 (`git push origin feature/amazing-feature`)
5. 创建 Pull Request
### 贡献类型
- 🐛 Bug 修复
- ✨ 新功能
- 📝 文档改进
- 🎨 代码优化
- 🧪 测试用例
## 📄 许可证
本项目基于 [MIT License](LICENSE) 开源协议。
## 🙏 致谢
感谢所有贡献者的努力!
---
如果这个项目对你有帮助,请给我们一个 ⭐️!