# onflow-framework
**Repository Path**: decentant/onflow-framework
## Basic Information
- **Project Name**: onflow-framework
- **Description**: 如流后端框架,一个基于Kotlin语言,类驱动数据库的高效率后端开发框架,并且拥有高效率的代码生成引擎,为您的开发和变更保驾护航。
- **Primary Language**: Kotlin
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 7
- **Forks**: 0
- **Created**: 2025-06-29
- **Last Updated**: 2026-07-01
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Onflow 如流后端开发框架
## 介绍
基于 Kotlin + SpringBoot 3.x + JDK 21 的后端开发框架,支持虚拟线程提升吞吐量。核心依赖仅 MySQL + Redis,不引入多余中间件,降低项目启动门槛。
主要依赖:MyBatisPlus、Knife4j、Fastjson2、Hutool、POI、Okhttp3、AdvanceExcel
**目标用户:** 快速搭建网站的个人开发者、中小型企业。
## 特点
- 轻量级、高性能、可扩展、可定制
- JDK 21 虚拟线程,提升并发吞吐
- 代码简洁,controller 方法仅一行,service 基础方法不超过 4 行
- Entity 类驱动数据库,变更自动同步代码和数据库
- 超强代码生成器,后端 + 前端 + SQL 一站式生成,支持增量更新
- 按钮级权限控制,支持按角色精细化分配按钮显隐权限
- 支持 AI 对话,仅需配置 API Key 即可在管理后台中进行 AI 智能对话
- 支持多数据源,可同时连接 MySQL + PostgreSQL(可以换成其他数据源),打开secondary中的url注释即可生效
- 强大文件传输中心,支持 WebSocket 消息推送
## 项目结构
```
onflow-framework # 根模块,统一版本号
├── onflow-core # 核心模块,含基础功能,直接引入即可开发
├── onflow-generator # 代码生成模块,小项目引入此模块即可
├── onflow-system # 系统模块(用户/角色/权限/菜单/部门/字典/日志/定时任务/文件等)
│ ├── onflow-system-entity # 系统 Entity 类,供其他模块调用
│ ├── onflow-system-adaptor # 系统适配器,无接口依赖,可直接使用
│ ├── onflow-system-generator # 系统关联数据生成器
│ └── onflow-system-service # 系统 Service 层
├── onflow-starter # 启动模块
│ ├── onflow-starter-boot # 单机启动
│ ├── onflow-starter-cloud # 集群启动(需 Nacos)
│ └── onflow-starter-package # 打包模块
└── onflow-gateway # 网关模块(需 Nacos)
├── onflow-gateway-boot # 网关启动器
└── onflow-gateway-package # 网关打包模块
```
## 快速开始
**方式一:小项目**
```xml
com.itdct.onflow
onflow-generator
1.2-SNAPSHOT
```
**方式二:完整项目**
```xml
com.itdct.onflow
onflow-service
1.2-SNAPSHOT
```
**方式三:仅需系统基础功能(字典、账号、菜单等)**
```xml
com.itdct.onflow
onflow-adaptor
1.2-SNAPSHOT
```
**方式四:仅需 Entity 类(前台开发)**
```xml
com.itdct.onflow
onflow-entity
1.2-SNAPSHOT
```
参考 [SysAccountEntity.kt](onflow-system%2Fonflow-system-entity%2Fsrc%2Fmain%2Fkotlin%2Fcom%2Fitdct%2Fonflow%2Fsystem%2Faccount%2Fentity%2FSysAccountEntity.kt) 创建 Entity,然后运行 [Main.kt](onflow-system%2Fonflow-system-generator%2Fsrc%2Fmain%2Fkotlin%2Fcom%2Fitdct%2Fonflow%2Fsystem%2Fgenerator%2FMain.kt) 生成接口代码。
## 项目编译
```shell
mvn install
```
> JDK ≥ 21,Maven ≥ 3.9.9
## 项目启动
### 单机模式
1. 复制 [application-demo.yml](onflow-starter%2Fonflow-starter-boot%2Fsrc%2Fmain%2Fresources%2Fapplication-demo.yml) 为 `application-yourname.yml`,修改配置
2. 启动 [OnflowBoot.kt](onflow-starter%2Fonflow-starter-boot%2Fsrc%2Fmain%2Fkotlin%2Fcom%2Fitdct%2Fonflow%2FOnflowBoot.kt)
### 集群模式(需 Nacos)
1. 启动 Nacos 集群
2. 复制 [application-demo.yml](onflow-starter%2Fonflow-starter-cloud%2Fsrc%2Fmain%2Fresources%2Fapplication-demo.yml) 为 `application-yourname.yml`,修改 Nacos 配置
3. 将单机模式 `application-demo.yml` 内容导入 Nacos 并修改
4. 启动 [OnflowCloudBoot.kt](onflow-starter%2Fonflow-starter-cloud%2Fsrc%2Fmain%2Fkotlin%2Fcom%2Fitdct%2Fonflow%2FOnflowCloudBoot.kt)
### Gateway
需先启动 Nacos,再启动 [OnflowGatewayBoot.kt](onflow-gateway%2Fonflow-gateway-boot%2Fsrc%2Fmain%2Fkotlin%2Fcom%2Fitdct%2Fonflow%2Fgateway%2FOnflowGatewayBoot.kt)
## 项目部署
执行 `mvn package`,在 `onflow-starter-package/target/` 下生成 `tar.gz` 包,上传服务器后:
```shell
tar -zxvf 项目名.tar.gz -C 目标路径
cd bin
./start.sh
```
> 集群模式需将配置先上传至 Nacos。
## 技术栈
| 组件 | 版本 |
|------|------|
| JDK | ≥ 21 |
| SpringBoot | 3.5.14 |
| Kotlin | 2.2.20 |
| Maven | ≥ 3.9.9 |
| MySQL | ≥ 5.7 |
| Redis | ≥ 6.0 |
## TODO
- [ ] 菜单搜索跳转功能
- [ ] Excel 导入导出代码增量生成
- [ ] 短信发送
- [ ] 飞龙流程
## 捐赠
## 联系方式
- CSDN:[https://blog.csdn.net/DCTANT](https://blog.csdn.net/DCTANT)
- 邮箱:2427746718@qq.com
- QQ群:170618278