概述
官网,由国内顶尖开源项目作者自发组成的中立的开源社区,汇聚数十个覆盖微服务、认证鉴权、工具库、运维监控等领域的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>
最小调用模型
- 定义一个接口
- 在接口方法上写
@JCurlCommand - 方法参数一般使用
JQuickCurlReq - 用
JCurlInvoker.createProxy创建代理对象 - 直接调用方法
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,支持自定义规则 |
| 适用场景 | 简单流程或旧系统兼容 | 复杂流程、高扩展性需求 | 国产化、轻量级项目,快速审批场景,灵活扩展和低代码集成 |
实战
官方即在线演示地址。
菜单栏:
- 系统管理:用户管理、角色管理、菜单管理、部门管理、岗位管理、字典管理、参数设置、通知公告、日志管理(操作日志、登录日志)
- 系统监控:在线用户、定时任务、数据监控、服务监控、缓存监控、缓存列表
- 系统工具:表单构建、代码生成、系统接口
- 流程管理:表单设计、流程定义、待办任务、已办任务、抄送任务