菜单

开源项目

相关源文件

本页面收录并描述了涵盖各个领域的优质开源 Java 项目,旨在为 Java 开发者提供一个精选的学习指南,帮助他们利用现有工具、库和框架,而不是一切从头开始。关于具体的教程和学习资源,请参阅 技术教程

Java 开源生态概览

Java 生态系统拥有丰富的开源项目,几乎涵盖了软件开发的各个方面。本文档将这些项目按照其目的和功能进行逻辑分类,以帮助开发者快速找到适合自己需求的工具。

来源: docs/open-source-project/system-design.md1-251 docs/open-source-project/practical-project.md1-85 docs/open-source-project/tool-library.md1-78 docs/open-source-project/tools.md1-72 docs/open-source-project/machine-learning.md1-22 docs/open-source-project/big-data.md1-12

系统设计项目

本节介绍有助于开发者构建健壮系统架构的框架和库。

Web 框架

Web 框架

  • Spring Boot: 能够轻松创建生产级的 Spring 应用程序,只需很少的配置
  • SOFABoot: 基于 Spring Boot,但增加了就绪检查和类隔离等功能
  • Solon: 国产全场景 Java 企业应用开发框架
  • Javalin: 轻量级 Web 框架,支持 Java 和 Kotlin
  • Play Framework: Java 和 Scala 的高速 Web 框架
  • Blade: 基于 Java 8 + Netty 4 的轻量级 Web 框架

微服务/云原生

  • Armeria: 适用于任何场景的微服务框架
  • Quarkus: 用于编写 Java 应用程序的云原生、容器优先的框架
  • Helidon: 用于编写微服务的 Java 库集合

API 文档

  • Swagger: 主流的 RESTful API 文档工具
  • Knife4j: 集成了 Swagger2 和 OpenAPI3 的增强解决方案

Bean 映射

  • MapStruct: 使用编译时代码生成,类型安全、高性能的 Java Bean 映射器
  • JMapper: 高性能、易于使用的 Bean 映射框架

其他框架

  • Google Guice: Google 出品的轻量级依赖注入框架
  • Spring Batch: 用于批处理的框架,可从数据库、文件或队列读取数据

来源: docs/open-source-project/system-design.md7-38

认证与授权

权限与认证

  • Sa-Token: 轻量级 Java 权限认证框架,提供认证、授权、单点登录、续期等功能
  • Spring Security: Spring 官方的安全框架,用于认证、授权、加密和会话管理
  • Shiro: Java 安全框架,功能与 Spring Security 类似但更易用

第三方登录

  • WxJava: 微信开发 Java SDK,支持微信支付、开放平台、小程序、企业微信和公众号
  • JustAuth: 小而全、好用的第三方登录组件,支持 GitHub、Gitee、微信、Google 等数十个平台

单点登录 (SSO)

  • CAS: 企业级多语言网络单点登录解决方案
  • MaxKey: 支持安全、标准、开放的 IDM、AM、SSO、RBAC 权限的单点登录认证系统
  • Keycloak: 免费开源的身份和访问管理系统,提供高度可配置的 SSO 功能

来源: docs/open-source-project/system-design.md39-57

网络通信

  • Netty: 用于快速开发网络应用程序的 NIO 客户端-服务器框架
  • Retrofit: 使用 OkHttp 库的 Android 和 Java 类型安全 HTTP 客户端
  • Forest: 轻量级 HTTP 客户端 API 框架,使 HTTP/HTTPS 请求更轻松
  • netty-websocket-spring-boot-starter: 帮助使用 Netty 在 Spring Boot 中开发 WebSocket 服务器

来源: docs/open-source-project/system-design.md58-64

数据库

连接池

  • Druid: 阿里巴巴开发的连接池,用于监控数据库性能
  • HikariCP: 快速、可靠的 JDBC 连接池(Spring Boot 2.0+ 默认使用)

ORM 框架

  • MyBatis-Plus: MyBatis 的增强工具,简化开发
  • MyBatis-Flex: 一款优雅的 MyBatis 增强框架,无任何第三方依赖
  • jOOQ: 用 Java 编写 SQL 的最佳方式,支持类型安全查询
  • Redisson: 基于 Redis 的内存数据网格,提供分布式的 Java 对象和工具

数据同步

  • Canal: 主要用于解析 MySQL 增量日志,提供增量数据订阅
  • DataX: 阿里巴巴广泛使用的离线数据同步工具,支持各种异构数据源

时间序列数据库

  • IoTDB: 由 Java 编写的国产时序数据库,用于物联网数据的采集、存储和分析
  • KairosDB: 基于 Cassandra 的快速分布式可扩展时序数据库

来源: docs/open-source-project/system-design.md65-90

搜索引擎

  • Elasticsearch: 开源的分布式 RESTful 搜索引擎(推荐)
  • Meilisearch: 功能强大、快速、开源的搜索引擎,支持原生中文搜索
  • Solr: 基于 Apache Lucene 的开源企业搜索平台
  • Easy-ES: 用户友好的 ElasticSearch ORM 框架

来源: docs/open-source-project/system-design.md91-97

测试

测试框架

  • JUnit: 标准 Java 测试框架
  • Mockito: 用于创建依赖项测试替身的 Mocking 框架
  • PowerMock: Mockito 的扩展,用于 Mock 静态方法、构造函数和私有方法
  • WireMock: 用于 Mock HTTP 服务的工具
  • Testcontainers: 提供数据库、消息代理或 Web 浏览器轻量级、一次性实例的库

测试平台

  • MeterSphere: 一站式开源持续测试平台,涵盖测试跟踪、API 测试、性能测试
  • Apifox: 结合了 API 文档、调试、Mock 和自动化测试

API 调试

  • Reqable: 新一代开源 API 开发工具
  • Insomnia: REST、GraphQL 和 gRPC 的 API 客户端
  • RapidAPI: 功能丰富的 HTTP 客户端(仅限 Mac)
  • Postcat: 可扩展的开源 API 工具平台
  • Postman: 最常用的 API 测试工具之一
  • Hoppscotch (原 Postwoman): Postman 和 Insomnia 的开源替代品
  • Restful Fast Request: IDEA 的 Postman,集 API 测试、管理和搜索于一体

来源: docs/open-source-project/system-design.md98-127

任务调度

  • Quartz: Java 的标准任务调度,是许多其他调度框架的基础
  • XXL-JOB: 分布式任务调度平台,旨在快速开发、简洁易扩展
  • Elastic-Job: 当当网出品的分布式调度解决方案,基于 Quartz 和 Zookeeper
  • DolphinScheduler (原 EasyScheduler): 分布式、可扩展的可视化工作流任务调度平台
  • PowerJob: 新一代分布式任务调度和计算框架,支持多种调度策略

来源: docs/open-source-project/system-design.md128-135

工作流

  • Flowable: 从 Activiti 5 演变而来,增加了 CMMN 和 DMN 支持等增强功能
  • Activiti: 更保守地采用 BPMN 2.0 工作流引擎,适用于传统企业应用
  • Warm-Flow: 国产开源工作流引擎,功能简洁全面
  • FlowLong: 国产工作流引擎,专为中国式审批流程设计

来源: docs/open-source-project/system-design.md136-142

分布式系统

API 网关

  • Kong: 云原生、快速、可扩展的分布式微服务抽象层
  • ShenYu: 可扩展、高性能、响应迅速的 API 网关,适用于所有微服务
  • Spring Cloud Gateway: 基于 Spring Framework 5.x 和 Spring Boot 2.x 构建的高性能网关
  • Zuul: L7 应用网关,提供动态路由、监控、弹性、安全

配置中心

  • Apollo: 携程开发的分布式配置中心,用于跨环境管理应用配置
  • Nacos: Spring Cloud Alibaba 的服务发现和配置管理组件
  • Spring Cloud Config: 用于在多个应用和环境之间分发配置的配置服务器
  • Consul: HashiCorp 的工具,提供服务发现、配置中心和控制总线功能

分布式追踪

  • Skywalking: 分布式系统的应用性能监控,尤其适用于微服务
  • Zipkin: 分布式追踪系统,用于收集排查延迟问题所需的时序数据
  • CAT: 美团点评的服务器端组件,提供监控指标、健康状态、实时警报

分布式锁

  • Lock4j: 高性能分布式锁,支持 Redisson、ZooKeeper 等解决方案
  • Redisson: 功能全面且强大的分布式锁支持,超越简单的 Redis 实现

来源: docs/open-source-project/system-design.md143-171

高性能

多线程

  • Hippo4j: 支持动态变更、监控、告警的异步线程池框架
  • Dynamic TP: 轻量级动态线程池,具备监控和告警能力
  • asyncTool: 京东的多线程工具库,解决并行/串行/阻塞执行顺序问题

缓存

  • 本地缓存

    • Caffeine: 性能卓越的强大本地缓存解决方案
    • Guava: Google Java 核心库,包含全面的本地缓存实现
    • OHC: Java 堆外缓存解决方案(已于 2021 年停止维护)
  • 分布式缓存

    • Redis: 行业标准的内存数据库,用作分布式缓存
    • Dragonfly: 为现代应用工作负载设计的内存数据库,兼容 Redis
    • KeyDB: 高性能 Redis 分支,专注于多线程和效率
  • 多级缓存

    • J2Cache: 基于本地内存和 Redis 的两级 Java 缓存框架
    • JetCache: 来自阿里巴巴的缓存框架,支持多级缓存和自动刷新

消息队列

  • 分布式队列

    • RocketMQ: 阿里巴巴的高性能、高吞吐量分布式消息中间件
    • Kafka: 分布式发布/订阅消息系统
    • RabbitMQ: 实现高级消息队列协议 (AMQP) 的消息代理
  • 内存队列

    • Disruptor: 由 LMAX Exchange 开发的高性能队列,解决内存队列延迟问题

读写分离 & 分片

  • ShardingSphere: 分布式数据库中间件解决方案生态
  • MyCat: 用于读写分离和数据库分片的数据库中间件
  • dynamic-datasource-spring-boot-starter: 用于快速集成多个数据源的 Spring Boot Starter

来源: docs/open-source-project/system-design.md172-216

高可用

速率限制

  • 分布式限流

    • Sentinel: 阿里巴巴的高可用分布式服务架构保护组件
    • Hystrix: Netflix 的库,用于控制分布式服务之间的交互
  • 本地限流

    • Bucket4j: 基于令牌/漏桶算法的限流库
    • Resilience4j: 受 Hystrix 启发的轻量级容错组件

监控

  • Spring Boot Admin: 用于管理和监控 Spring Boot 应用程序的管理 UI
  • Metrics: 用于捕获 JVM 和应用程序级别指标的库

日志记录

  • ELK Stack: 最初的 Elasticsearch、Logstash 和 Kibana 组合
  • New ELK Architecture: Elasticsearch、Logstash、Kibana 以及 Beats
  • EFK Stack: Elasticsearch、Fluentd、Kibana
  • TLog:轻量级分布式日志追踪工具,适用于微服务

来源:docs/open-source-project/system-design.md217-244

字节码操作

  • ASM:通用的 Java 字节码操作和分析框架
  • Byte Buddy:用于在运行时创建和修改 Java 类的 Java 库
  • Javassist:用于编辑 Java 字节码的类库
  • Recaf:基于 ASM 的现代 Java 字节码编辑器,用于简化已编译 Java 应用的编辑

来源:docs/open-source-project/system-design.md245-251

实践项目

本节介绍完整的应用项目,可用作学习资源、参考实现或您自己应用的起点。

快速开发平台

  • Snowy:中国首个前后端分离的开发平台,采用状态加密算法
  • eladmin:前后端分离的后台管理系统,包含 RBAC 权限控制和代码生成
  • RuoYi:基于 SpringBoot 的权限管理系统,界面简洁美观
  • AgileBoot-Back-End:基于 RuoYi 的增强优化基础快速开发框架
  • SmartAdmin:简单易用的低代码后端解决方案
  • EuBackend:基于 SpringBoot 的轻量级快速开发平台
  • RuoYi-Vue-Pro:增强版的 RuoYi-Vue,增加了许多额外功能
  • RuoYi-Vue-Plus:重写版的 RuoYi-Vue,集成了 Sa-Token、Mybatis-Plus 等增强功能
  • pig:基于 Spring Boot + Spring Cloud + OAuth2 的 RBAC 权限管理系统
  • Guns:现代 Java 应用开发基础框架
  • JeecgBoot:基于代码生成器的低代码快速开发平台
  • Erupt:使用 Java 注解的低代码全栈框架
  • BallCat:包含基础权限管理的全面快速开发脚手架
  • JHipster:开源应用平台,可在几秒钟内创建 Spring Boot + Angular/React 项目

来源:docs/open-source-project/practical-project.md7-23

博客/论坛系统

  • paicoding:功能强大的开源社区,基于 Spring Boot,提供详细教程
  • forest:下一代知识社区系统,支持自定义话题和作品集
  • community:开源论坛和问答系统,具有提问、回复、通知等功能
  • OneBlog:简洁、功能丰富、自适应的博客系统,支持广告、SEO 和实时通信
  • VBlog:使用 Vue + Spring Boot 构建的多用户博客管理平台
  • My-Blog:使用 Spring Boot + Mybatis + Thymeleaf 的 Java 博客系统,页面美观,部署简单

来源:docs/open-source-project/practical-project.md24-34

Wiki/文档系统

  • zyplayer-doc:知识库、笔记和 WIKI 文档管理工具,适合团队和个人使用
  • **

注意:由于达到令牌限制,此 Wiki 页面的内容已被截断。