Dromara开源社区项目简介:hutool、MaxKey、Jpom、JQuick-Curl、Warm-Flow

概述

官网,由国内顶尖开源项目作者自发组成的中立的开源社区,汇聚数十个覆盖微服务、认证鉴权、工具库、运维监控等领域的Java开源项目。

hutool

官网,开源(GitHub,30.3K Star,7.6K Fork;Gitee,24.4K Star,8.3K Fork)小而全的Java工具类库,旨在帮助开发者快速、便捷地完成各类开发任务。封装工具涵盖字符串、数字、集合、编码、日期、文件、IO、加密、数据库JDBC、JSON、HTTP客户端等一系列操作。

采用Maven模块化设计:

模块 介绍
hutool-aop JDK动态代理封装,提供非IOC下的切面支持
hutool-bloomFilter 布隆过滤,提供一些Hash算法的布隆过滤
hutool-cache 简单缓存实现
hutool-core 核心,包括Bean操作、日期、各种Util等
hutool-cron 定时任务模块,提供类Crontab表达式的定时任务
hutool-crypto 加密解密模块,提供对称、非对称和摘要算法封装
hutool-db JDBC封装后的数据操作,基于ActiveRecord思想
hutool-dfa 基于DFA模型的多关键字查找
hutool-extra 扩展模块,对第三方封装(模板引擎、邮件、Servlet、二维码、Emoji、FTP、分词等)
hutool-http 基于HttpUrlConnection的Http客户端封装
hutool-log 自动识别日志实现的日志门面
hutool-script 脚本执行封装,例如Javascript
hutool-setting 功能更强大的Setting配置文件和Properties封装
hutool-system 系统参数调用封装(JVM信息等)
hutool-json JSON实现
hutool-captcha 图片验证码实现
hutool-poi 针对POI中Excel和Word的封装
hutool-socket 基于Java的NIO和AIO的Socket封装
hutool-jwt JWT封装实现
hutool-ai AI大模型封装实现

可根据需求对每个模块单独引入,也可通过引入hutool-all方式引入所有模块(强烈不建议)。

实战

Maven项目引入依赖:

xml 复制代码
<dependency>
	<groupId>cn.hutool</groupId>
	<artifactId>hutool-core</artifactId>
	<version>5.8.47</version>
</dependency>

Gradle项目引入依赖:

groovy 复制代码
implementation 'cn.hutool:hutool-poi:5.8.47'

上手代码过于简单,查看官方文档即可,略。

LiteFlow

另起一篇,参考规则引擎LiteFlow:介绍与实战。

Sa-Token

另起一篇,参考Sa-Token简介与实战。

Forest

另起一篇,参考Forest简介与实战。

EasyAi

另起一篇,参考Java实现AI框架:EasyAi、EasyAi-Face、SayOrder、EasyAi-Plus。

MaxKey

官网,Java+TypeScript实现、开源(GitHub,2K Star,411 Fork)业界领先的IAM-IDaas身份管理和认证产品,支持OAuth2.x、OIDC、SAML2.0、CAS、JWT、SCIM等SSO标准协议,基于RBAC统一权限控制,实现用户生命周期管理,开源、安全、合规、自主可控。官方文档。

特性:

  • 标准协议支持
Protocols Support
OAuth2.x/OIDC HIGH
SAML2.0 HIGH
JWT HIGH
CAS HIGH
SCIM2.0 HIGH
FormBased MIDDLE
TokenBased(Post/Cookie) MIDDLE
ExtendApi LOW
EXT LOW
  • 身份认证
登录方式 支持
Captcha letter/number/arithmetic
Two Factor Authentication SMS/TOPT/Mail
SMS 腾讯、阿里SMS、网易云信
TOTP Google/MicrosoftAuthenticator/FreeOTP/SupportTOTPorHOTP
Domain Kerberos/SPNEGO/ADdomain
LDAP OpenLDAP/ActiveDirectory/StandardLDAPServer
Social Account WeChat/QQ/Weibo/DingTalk/Google/Facebook/other
Scan QR Code Work、WeiXin/DingTalk/FeiShu Scan QR Code
No Password WebAuthn FIDO2/passkey
  • 标准认证协议,供应用程序集成SSO、安全移动访问、安全API、第三方认证和互联网认证
  • 身份生命周期管理,支持SCIM 2,并通过开箱即用的连接器实现身份供应同步
  • 简化Microsoft Active Directory、标准LDAP服务器的组织与账户管理,并通过密码自助服务重置密码。
  • IDaaS多租户认证平台,支持集团公司下多个企业的独立管理,或企业内部不同部门的数据隔离,从而降低运维成本。
  • 平台独立性与环境多样性。支持Web UI、手机、移动设备(如iOS、Android等),覆盖从B/S到移动应用的认证能力。
  • 可配置的密码与访问策略;支持Ip2region或GeoLite2地理数据库中的精准IP定位,强大的安全审计、用户全生命周期审计、访问行为记录溯源审计、安全合规审计以及安全风险预警。
  • 基于Java EE平台、微服务架构,使用Spring、MySQL、Tomcat、Redis等开源技术,具备强大的可扩展性。

实战

Jpom

官网,Java+Vue实现、开源(GitHub,1.9K Star,371 Fork;Gitee,12K Star,1.9K Fork)轻量、简洁、低侵入式在线构建、自动部署、日常运维、项目运维监控软件。

功能特性:

  • 节点管理:集群节点,统一管理多节点的项目,实现快速一键分发项目文件
  • 项目管理:创建、启动、停止、实时查看项目控制台日志,管理项目文件
  • SSH终端:在浏览器中执行SSH终端,方便进行日常运维,记录执行命令记录
  • 在线构建:在线拉取GIT、SVN仓库快速构建项目包,不用运维人员手动上传项目包
  • 在线脚本:在线管理脚本、定时执行脚本、webhook钩子执行、执行日志等
  • DOCKER管理:在线管理镜像、容器、SWARM集群。界面化管理DOCKER
  • 用户管理:多用户管理,实现不同用户不同权限,用户操作、管理日志完善记录
  • 项目监控:实时监控项目当前状态、如果异常自动触发邮件、钉钉报警通知
  • NGINX配置、SSL证书:在线快速方便的修改NGINX配置文件,SSL证书统一管理

架构

实战

基于Docker部署:

bash 复制代码
docker run -p 2122:2122 --name jpom-server jpomdocker/jpom
bash 复制代码
bash 复制代码
bash 复制代码
bash 复制代码

JQuick-Curl

开源(GitHub,1.1K Star,70 Fork)纯Java实现、轻量级HTTP客户端,

特性:

  • 原生curl风格API:用curl命令描述请求,用Java方法调用它
  • 注解与XML配置:使用@JCurlCommand声明请求,或在apis.xml中集中管理
  • 动态代理客户端:JCurlInvoker.createProxy(UserApi.class)将接口变成可用的客户端
  • 变量替换:在运行时从请求中解析${name}/#{name}占位符
  • 条件渲染:仅当XML<iftest="...">表达式为true时才渲染请求头或选项
  • Cookie支持:手动Cookie、基于文件的Cookie罐,以及Set-Cookie持久化
  • HTTP方法:GET、POST、PUT、PATCH、DELETE、HEAD、OPTIONS、TRACE
  • 文件传输:使用-F进行multipart上传,使用-o/--output进行下载
  • 批量执行:一次调用即可运行一个类中所有@JCurlCommand方法
  • 超时、重试、重定向与连接池:通过JQuickCurlConfig一次性配置
  • 拦截器:全局添加认证、日志或请求预处理
  • 代理与SSL:支持HTTP/SOCKS5代理,以及-k/--insecure跳过证书校验

适用场景

  • 项目中需要快速接第三方接口调用
  • API文档基于cURL命令
  • 调试优先,希望命令与代码保持一致
  • 暂时不想写复杂模板类和DTO

实战

Maven项目添加如下依赖:

xml 复制代码
<dependency>
	<groupId>io.github.paohaijiao</groupId>
	<artifactId>jquick-curl</artifactId>
	<version>2.1.0</version>
</dependency>

最小调用模型

  1. 定义一个接口
  2. 在接口方法上写@JCurlCommand
  3. 方法参数一般使用JQuickCurlReq
  4. 用JCurlInvoker.createProxy创建代理对象
  5. 直接调用方法

Hello World示例:

java 复制代码
import com.github.paohaijiao.anno.JCurlCommand;
import com.github.paohaijiao.domain.req.JQuickCurlReq;
import com.github.paohaijiao.executor.JCurlInvoker;
 
public interface HelloWorldApi {
	@JCurlCommand("curl -X GET https://httpbin.org/get")
	String hello(JQuickCurlReq request);
	
	@JCurlCommand("curl -X POST https://httpbin.org/post -H 'Content-Type: application/json' -d '{\"name\":\"jquick-curl\"}'")
	String post(JQuickCurlReq request);
	
	static void main(String[] args) throws Exception {
		HelloWorldApi api = JCurlInvoker.createProxy(HelloWorldApi.class);
		JQuickCurlReq req = new JQuickCurlReq();
		String result = api.hello(req);
	}
}

解读:

  • @JCurlCommand里写的是原生cURL命令格式
  • 返回值直接声明成String,拿原始响应字符串
  • JQuickCurlReq可用于动态变量替换

执行原理:

  • 解析@JCurlCommand中的cURL字符串
  • 把请求方法、Header、Body、认证、上传下载选项拆开
  • 构建底层HTTP请求
  • 执行请求
  • 把响应转换为声明的方法返回类型

MilvusPlus

另起一篇,参考向量数据库Milvus加强版客户端MilvusPlus:简介、原理、实战。

Warm-Flow

国产、Java+Vue+TypeScript实现、开源(Gitee,8.8K Star,972 Fork;GitHub,611 Star,88 Fork)工作流引擎,简洁轻量,五脏俱全,可扩展,可通过Jar引入设计器,解决Flowable和Activities复杂、学习成本高和集成难等痛点。

官网有多个:

优势:

  • 简洁易用:仅包含7张表,代码量少,上手和集成速度快
  • 审批功能全面:支持通过、退回、撤销、拿回、任意跳转、终止、转办、票签、委派和加减签、互斥、并行、自动审批、远程访问和脚本执行服务等多种审批操作,以及条件表达式、办理人表达和监听器等高级功能
  • 流程设计器:通过Jar包形式快速集成到项目,支持节点属性扩展,原生支持经典和仿钉钉双模式
  • 流程图:自带流程图,通过Jar包快速集,功能扩展,原生支持经典和仿钉钉双模式
  • 条件表达式:内置常见和SpEL条件表达式,支持自定义扩展
  • 办理人变量表达式:内置${handler}和SpEL格式的表达式,满足不同场景需求,灵活可扩展
  • 监听器:提供四种监听器,支持不同作用范围和SpEL表达式,参数传递灵活,支持动态权限
  • 流程变量:在整个流程办理过程起到重要的角色,如办理人表达式中,传入变量进行动态指定办理人
  • ORM框架支持:支持MyBatis、MyBatisPlus、JPA、Easy-Query和BeetlSql,后续将扩展支持其他框
  • 数据库支持:支持MySQL、Oracle、PG和SQLServer,其他数据库只需要转换表结构即可支持
  • 多租户:流程引擎自身维护多租户实现,也可使用对应ORM框架的实现方式
  • 软删除:流程引擎自身维护软删除实现,也可使用对应ORM框架的实现方式
  • 兼容性:支持Spring和Solon,兼容Java8、Java17、Java21
  • 实战项目:官方提供基于Ruoyi-Vue封装的实战项目,极具参考价值

典型企业应用场景:

  • 企业内部流程管理:用于管理企业的日常业务流程,如请假、报销、采购审批等
  • 项目管理:可用来跟踪项目任务的状态,管理项目流程,确保项目按计划进行
  • 客户服务流程:用于管理客户服务请求,如客户咨询、投诉处理、售后服务等
  • 人力资源管理:用于员工招聘、培训、绩效评估等流程的管理
  • 财务和会计流程:管理财务审批流程,如发票审核、预算审批等
  • IT服务管理:用于IT服务请求的处理,如IT支持请求、系统变更管理等
  • 合规性和风险管理:帮助企业在遵守法规和标准的同时,管理风险和合规流程

对比Activiti、Flowable

工作流 Activiti Flowable Warm-Flow
项目背景 Apache基金会 由Activiti原团队创建,功能更优化 国产工作流引擎
社区活跃度 社区规模大,但近年活跃度下降 社区活跃,迭代快 文档和Ruoyi-Vue实战案例较完善,社区活跃,更新快
数据库表结构 约25张表,分类简单 约40张表(部分版本达79张),分类更细 仅7张表,结构极简,维护成本低
功能与扩展性 基础BPMN支持,插件机制有限 支持动态流程修改、RESTAPI、多实例任务优化 审批功能全面,基于JSON定义,支持办理人表达式、监听器、变量表达式表达式、动态权限
流程设计器 需独立部署或集成第三方工具,通常只有经典模式设计器 需额外配置或扩展,通常只有经典模式设计器 通过Jar包快速集成,支持节点属性扩展,原生支持经典和仿钉钉双模式
流程图 生成静态BPMN流程图,颜色和样式固定 需结合bpmn.js,集成难度高,扩展困难 自带流程图,通过Jar包快速集,设置节点状态颜色,功能扩展等,原生支持经典和仿钉钉双模式
数据驱动 内部是通过MyBatis进行增删改查,对其他ORM不支持 同左 支持多ORM框架
多租户与软删除 需自行实现或依赖外部框架 原生支持多租户和软删除 原生支持多租户和软删除,也可复用ORM框架实现
数据库支持 主流数据库(MySQL、Oracle等) 同左 支持MySQL、Oracle、PG、SQLServer,和国产数据库
条件表达式 基础条件支持 支持SpEL表达式 内置SpEL和自定义表达式,支持动态权限和参数传递
办理人表达式 基于UEL实现,支持简单变量和固定角色分配 支持UEL、SpEL表达式,可通过动态变量、角色、部门等灵活分配任务 默认表达式和支持SpEL,支持自定义规则
适用场景 简单流程或旧系统兼容 复杂流程、高扩展性需求 国产化、轻量级项目,快速审批场景,灵活扩展和低代码集成

实战

官方即在线演示地址。

菜单栏:

  • 系统管理:用户管理、角色管理、菜单管理、部门管理、岗位管理、字典管理、参数设置、通知公告、日志管理(操作日志、登录日志)
  • 系统监控:在线用户、定时任务、数据监控、服务监控、缓存监控、缓存列表
  • 系统工具:表单构建、代码生成、系统接口
  • 流程管理:表单设计、流程定义、待办任务、已办任务、抄送任务
相关推荐
Είναι η κοπέλα1 小时前
开源推理引擎怎么选:vLLM、SGLang、Ollama、llama.cpp 的机制与部署
开源·vllm·sglang
江湖有缘1 小时前
3款开源IT工具箱整理合集,可Docker一键部署!
docker·容器·开源
分布式存储与RustFS1 小时前
AI 训练大文件 Range 读爆炸?RustFS 前面挂一层 Cachey
缓存·云原生·开源·对象存储·分布式存储·ai训练·s3
智码看视界2 小时前
开源大模型前沿:Baichuan 5 :单卡 H100 跑国产,长上下文 + 中文 Agentic 硬刚海外同档
开源·中文·llama.cpp·百川智能·国产大模型·baichuan 5
潇潇潇暮雨2 小时前
让 AI 读到 App 实时日志,结合源码定位问题
react native·开源·ai编程
microrain2 小时前
首包即身份:SagooIoT 网络组件的注册包、粘包与透传设计
物联网·golang·开源·sagooiot
resh_people3 小时前
开源鸿蒙平台 KMP_CMP 三方库「kotlinx.html」适配全流程
开源·html·harmonyos
小小龙学IT3 小时前
TDengine 开源时序数据库深度解析:从超级表到工业数采落地
开源·时序数据库·tdengine
分布式存储与RustFS4 小时前
GitLab 对接 RustFS 实战:OIDC 控制台 SSO + 制品存储落 S3 对象存储
运维·云原生·开源·对象存储·分布式存储·s3