卡卷网
当前位置:卡卷网 / 每日看点 / 正文

有什么比较优秀的Java开源项目?

作者:卡卷网发布时间:2024-12-25 01:18浏览数量:87次评论数量:0次

推荐20个或许小众但质量同样很高的 Java 项目。更多优质 Java 开源项目推荐请看:Java 开源项目精选。

有什么比较优秀的Java开源项目?  第1张

mini-spring-cloud:简化版 Spring Cloud

mini-spring-cloud 是一个手写的简化版的 Spring Cloud,旨在帮助你快速熟悉 Spring Cloud 源码及掌握其核心原理。

mini-spring-cloud 实现了 Spring Cloud 生态提供的核心功能比如服务注册、服务发现、负载均衡、集成 Feign 简化调用、流量控制、熔断降级、API 网关。并且,对于每一块功能的实现,mini-spring-cloud 还附带了详细的源码解析。

有什么比较优秀的Java开源项目?  第2张

相关阅读:腾讯正式开源 Spring Cloud Tencent,打造一站式微服务解决方案

Github 地址:github.com/DerekYRC/min

ANTLR:强大的语法解析器

Antlr(Another Tool for Language Recognition) 是一款强大的词法和语法解析器,可用于读取、处理、执行和翻译结构化的文本或二进制文件。

Antlr 广泛应用于学术界和工业界构建各种语言、工具和框架,比如 Twitter 搜索中的查询解析就是基于 ANTLR 来做的,再比如 HBase 的访问客户端 Phoenix 使用 Antlr 进行 SQL 解析。

Antlr 使用 Java 语言实现,支持 Java、C#、JavaScript、Python、Go、C++、Swift 等编程语言,目前在 Github 上收获了 12k+ Star。

有什么比较优秀的Java开源项目?  第3张

Antlr 的作者是谷歌的 Tech Lead,同时也是旧金山大学的数据科学和计算机教授,从 1989 年开始就一直深耕语言工具的开发和研究。一直到他自认满意的 ANTLR 4 发布,前后用了 25 年的时间。

  • Github 地址:github.com/antlr/antlr4
  • 官网:antlr.org/

Spring Cloud Tencent:腾讯版 Spring Cloud

Spring Cloud Tencent 是腾讯开源的一站式微服务解决方案。

有什么比较优秀的Java开源项目?  第4张

Spring Cloud Tencent 提供的能力包括但不限于:

  • 服务注册和发现
  • 动态配置管理
  • 服务治理
  • 服务限流
  • 服务熔断
  • 服务路由
  • ...

有什么比较优秀的Java开源项目?  第5张

图片来源于项目Github首页

Spring Cloud Tencent 官方提供了体验环境,地址:14.116.241.63:8080/ (账号和密码都是 polaris)。

有什么比较优秀的Java开源项目?  第6张

相关阅读:腾讯正式开源 Spring Cloud Tencent,打造一站式微服务解决方案

Github 地址:github.com/Tencent/spri

QR-Code-generator:高质量的二维码生成库

QR-Code-generator 是一款支持多语言(Java,TypeScript/JavaScript,Python,Rust,C++,C)的高质量的二维码生成库。

有什么比较优秀的Java开源项目?  第7张

与同类型的二维码生成库相比,QR-Code-generator 的代码更简介并且文档注释更详细。

Java 语言基于 QR-Code-generator 生成二维码的代码示例如下:

import java.awt.image.BufferedImage; import java.io.File; import java.util.List; import javax.imageio.ImageIO; import io.nayuki.qrcodegen.*; // Simple operation QrCode qr0 = QrCode.encodeText("Hello, world!", QrCode.Ecc.MEDIUM); BufferedImage img = toImage(qr0, 4, 10); // See QrCodeGeneratorDemo ImageIO.write(img, "png", new File("qr-code.png")); // Manual operation List<QrSegment> segs = QrSegment.makeSegments("3141592653589793238462643383"); QrCode qr1 = QrCode.encodeSegments(segs, QrCode.Ecc.HIGH, 5, 5, 2, false); for (int y = 0; y < qr1.size; y++) { for (int x = 0; x < qr1.size; x++) { (... paint qr1.getModule(x, y) ...) } }

  • Github 地址:github.com/nayuki/QR-Co
  • 官网:nayuki.io/page/qr-code-

forest:下一代的知识社区系统

forest 是下一代的知识社区系统,可以自定义专题和作品集。

有什么比较优秀的Java开源项目?  第8张

forest 的后端基于 SpringBoot + Shrio + MyBatis + JWT + Redis,前端基于 Vue + NuxtJS + Element-UI。

非常小众的一个项目,看得出来作者维护比较认真,并且很有想法。根据项目首页介绍,这个项目未来还可能会增加专业知识题库、社区贡献系统、会员系统。

有什么比较优秀的Java开源项目?  第9张

有什么比较优秀的Java开源项目?  第10张

  • Github 地址:github.com/rymcu
  • 演示:rymcu.com/

magic-api:可视化接口开发神器

有什么比较优秀的Java开源项目?  第11张

magic-api 是一款基于 Java 的可视化 HTTP API 接口开发神器,不需要编写定义Controller、Service、Dao、Mapper、XML、VO等 Java 对象,直接通过 UI 界面即可完成 HTTP API 接口的开发,支持 CRUD、参数校验、异常处理、文档生成、认证鉴权、异步调用、集群部署、接口发布等开箱即用的功能。

有什么比较优秀的Java开源项目?  第12张

magic-api 界面说明

并且,magic-api 提供了 Spring Boot Starter ,Spring Boot 项目引入 jar 包即可使用,非常方便。

<!-- 以spring-boot-starter的方式引用 --> <dependency> <groupId>org.ssssssss</groupId> <artifactId>magic-api-spring-boot-starter</artifactId> <version>1.7.4</version> </dependency>

目前的话,已有上千家中小型公司使用 magic-api 进行接口开发。如果你做的也是一些比较小型的项目,我觉得可以尝试使用。否则的话,尽量就不要用 magic-api 了。

  • Gitee 地址:gitee.com/ssssssss-team
  • 官网 :ssssssss.org/

LanguageTool:语言矫正

这是一款基于 Java 语言编写的开源语言校正工具,支持中文、英语、法语、德语等二十多种语言,能够帮助我们发现一些简单的拼写错误。

你可以在 Java 项目中直接集成 LanguageTool 的 jar 包,也可以通过 HTTP 的方式调用 LanguageTool 官方的 API。

项目地址:github.com/languagetool

这款开源项目对应的工具还提供了 Mac 版本、Windows 版本、在线使用版本、 Chrome 插件、Officer 插件。

有什么比较优秀的Java开源项目?  第13张

在线版地址:languagetool.org/

有什么比较优秀的Java开源项目?  第14张

Chrome 插件的使用人数突破了 100 万:

有什么比较优秀的Java开源项目?  第15张

相关文章推荐:

  • LanguageTool 详细介绍
  • 在 Java 应用程序中集成使用 LanguageTool
  • 通过 HTTP 的方式调用 LanguageTool 官方的 API

toBeBetterJavaer:一份有趣的 Java 学习指南

这是一份通俗易懂、风趣幽默的 Java 学习指南,内容涵盖 Java 基础、Java 集合框架、Java 并发编程、JVM、Java 企业级开发(Git、SSM、Spring Boot)等知识点。

有什么比较优秀的Java开源项目?  第16张

这份 Java 学习指南的内容比较全面且基础,尤其适合 Java 初学者。

  • 项目地址:github.com/itwanger/toB
  • 在线阅读:itwanger.gitee.io/tobeb

DataSphere Studio:数据应用开发管理集成框架

DataSphere Studio(DSS) 是微众银行自研的数据应用开发管理集成框架,拖拽式开发体验,支持数据交换、脱敏清洗、分析挖掘、可视化展现等功能,覆盖了数据应用开发全流程场景需求。

有什么比较优秀的Java开源项目?  第17张

projectpage.png

如果我们需要搭建一站式数据处理开发平台的话,这个项目可以直接拿来使用,可以帮助我们节省很多烦琐的事情。

目前的话,已经有海康威视、北京红象云腾、平安产险、百望云等公司在使用 DSS。

  • Github 地址:github.com/WeBankFinTec
  • 中文文档:github.com/WeBankFinTec

相关文章推荐:

  • 开源 80 万行代码,微众银行如何在小团队规模下炼出一套一站式大数据平台 | 卓越技术团队访谈录 - InfoQ
  • 2021 WeDataSphere 开源大数据大会演讲内容精华总结 - InfoQ

Restful Fast Request: IDEA 插件版 Postman

Restful Fast Request 是一个强大的 HTTP 调试 IDEA 插件,支持 Spring MVC / Spring Boot,自带下面这些功能:

  1. 帮你快速生成 URL 和参数(适用于 Spring MVC 项目);
  2. 发送请求调试 API;
  3. 对 API 进行管理;
  4. 发送请求调试 API(支持修改生成的参数);
  5. ……

IDEA 插件市场下载使用 Restful Fast Request 。

有什么比较优秀的Java开源项目?  第18张

下载之后,我们会在 IDEA 侧边栏看到对应的插件。

  • Gitee 地址:gitee.com/dromara/fast-
  • 官方文档 :plugins.sheng90.wang/fa

DolphinScheduler:分布式易扩展的可视化工作流任务调度平台

DolphinScheduler 是一个基于 Java 语言的分布式易扩展的可视化工作流任务调度平台:

  • 支持单机&集群&Kubernetes 部署;
  • 通过“微内核 + 插件化”架构来提高功能扩展的灵活性和友好性;
  • 可视化拖拽任务即可定制 DAG;
  • 支持多种任务类型:Shell、SQL、Spark、Hive、MapReduce、Python、Flink......;
  • 自带监控中心,支持查看各个服务(Master、Worker、ZooKeeper、DB)的健康状况;
  • ......

如果想要本地体验 DolphinScheduler 功能的话,推荐单机模式,生产环境部署的话不推荐单机模式,因为单机模式下使用 H2 Database 和 Zookeeper Testing Server,仅支持少量的任务量。

DolphinScheduler 采用去中心化的多 Master 和多 Worker 服务对等架构来保证系统运行的高可靠和高性能。

DolphinScheduler 的系统架构如下图所示。

DolphinScheduler系统架构

主要包含下面几个角色:

  • MasterServer :主要负责任务的管理(如 DAG 任务切分、任务提交&监控),同时还会监听其他 MasterServer 和 WorkerServer 的健康状态。
  • WorkerServer :主要负责任务的具体执行工作,俗称打工仔。
  • Registry :注册中心,默认采用的是 ZooKeeper,主要用于提供集群管理和容错、事件监听、分布式锁等功能。

DolphinScheduler 的部署和使用需要依赖 ZooKeeper,因为其使用 ZooKeeper 来做分布式协调。并且,生产环境一般是推荐以集群化部署 ZooKeeper。因此,DolphinScheduler 的部署还是有一些麻烦的。希望后续能够不依赖 ZooKeeper 吧!

2019 年 8 月 29 日,DolphinScheduler 顺利进入 Apache 基金会孵化。2021 年 4 月 8 日,顺利毕业,成为 Apache 顶级项目。并且,在 2021 年的 OSC 中国开源项目评选中,DolphinScheduler 和 Nacos 都被评为了最受欢迎的国产项目。

有什么比较优秀的Java开源项目?  第19张

2021 年 OSC 最受欢迎的国产开源项目

  • Github:github.com/apache/dolph
  • 官网:dolphinscheduler.apache.org

相关阅读:

  • 4 亿用户,7W+ 作业调度难题,Bigo 基于 Apache DolphinScheduler 巧化解
  • 从 Airflow 到 Apache DolphinScheduler,有赞大数据开发平台的调度系统演进

Jarboot:可视化 Java 进程管理平台

Jarboot 是一款对业务代码无侵入的可视化 Java 进程管理平台,支持 Java 进程启停、诊断、监控。

Jarboot 具体的技术原理是通过 JavaAgent + ASM 来往目标 Java 进程注入代码:

  • JavaAgent 可以在加载 Java 文件之前对字节码进行修改,也可以在运行期间对已经加载的类的字节码进行修改。
  • ASM 是一个 Java 字节码操作框架,可以帮助我们操作 Java 字节码。

市面上绝大部分的 Java 诊断/分析工具的原理都类似,只是具体使用的字节码操作框架的不一样。

Jarboot 基于 React(前端,) + SpringBoot(后端),通过 WebSocket 向前端界面实时推送进程的相关信息。

类似于 Arthas,Jarboot 也提供了一些开箱即用的命令(如获取 JVM 信息、 监控线程状态、获取线程栈信息等),并且,你还可以通过 SPI 扩展(支持 JDK 和 Spring 的 SPI)机制来实现自己的命令。

  • Gitee 地址:gitee.com/majz0908/jarb
  • 文档:yuque.com/jarboot

LogiKM:Kafka 集群运维监控平台

LogiKM 是滴滴开源的一款一站式 Apache Kafka 集群指标监控与运维管控平台,具备 Kafka 运维管控、监控告警、资源治理等功能。

根据官方 README 介绍,LogiKM 在滴滴内部经历了大规模集群、海量大数据的考验。

不过,只有你使用的 Kafka 依赖 Zookeeper 才能使用 LogiKM。如果你使用的是 2.8 版本之后的 Kafka,不需要 Zookeeper 就能使用 Kafka 绝大部分功能。

  • Github 地址:github.com/didi/LogiKM
  • 体验地址:117.51.150.133:8080 (admin/admin)

相关文章推荐:

  • 9 张图,Kafka 为什么要放弃 Zookeeper
  • 滴滴开源 Logi-KafkaManager 一站式 Kafka 监控与管控平台 - 滴滴技术

mall4cloud:微服务商城系统

mall4cloud 是一个高质量的微服务 B2B2C 电商商城系统。

有什么比较优秀的Java开源项目?  第20张

mall4cloud-web

开源的商城项目已经有非常多了,mall4cloud 这个项目我觉得有下面这些亮点:

  • 技术栈主流 :Spring Boot + Spring Cloud Alibaba;
  • 代码质量相对较高 :完全准守阿里巴巴代码规约;
  • 功能完善 :除了具备商城最基本的功能之外,还自带丰富的营销工具。

不过,比较遗憾的是这个商城项目的 Web 端的话暂未开源。

  • Github 地址:github.com/gz-yami/mall
  • Gitee 地址:gitee.com/gz-yami/mall4
  • 官网:mall4j.com

相关文章推荐:这个 SpringBoot 电商系统值得推荐!

java-design-patterns:设计模式 Java 版

java-design-patterns 这个项目总结了一些常见的设计模式以及软件设计原则,并提供了详细的解释以及示例代码。

这个项目是我见过质量最高,最全面的设计模式总结。目前的话,这个项目目前一共总结了 :

  • 148 个软件开发常用的设计模式比如责任链模式(Chain of responsibility)、工厂模式(Factory)、代理模式(Proxy)、CQRS、API Gateway、线程池(Thread Pool);
  • 26 个软件设计原则比如 SOLID(Single Responsibility Principle(单一职责原则)、Open/Closed Principle(开闭原则)、Liskov Substitution Principle(里式替换原则)、Interface Segregation Principle(接口隔离原则)、Inversion of Control(控制反转))、KISS 、YAGNI。

java-design-patterns-principlesjava-design-patterns-patterns

对于每一种设计模式,这个项目还对其进行了分类:

  • 创建型模式(Creational)
  • 结构型模式(Structural)
  • 行为型模式(Behavioral)
  • 并发(Concurrency)
  • ......

除了分类之外,我觉得对于我们寻找适合自己使用的设计模式更有用的是标签:

  • 数据访问(Data access)
  • 扩展性(Extensibility)
  • 微服务(Microservices)
  • 解耦(Decoupling)
  • 测试(Testing)
  • ......

有什么比较优秀的Java开源项目?  第21张

java-design-patterns-categories

对于每一种设计模式,这个项目都提供了具体的解释、示例代码、类图、相关设计模式、适用场景、教程以及书籍。

下图是这个项目对业务代表模式(Business Delegate Pattern)的介绍:

有什么比较优秀的Java开源项目?  第22张

关于为什么要学习设计模式,我之前写过这样一段话:

软件开发中有一个概念叫做“软件复用”。简单来说,软件复用就是我们在构建一个新的软件的时候,不需要从零开始,通过复用已有的一些轮子(框架、第三方库等)、设计模式、设计原则等等现成的物料,我们可以更快地构建出一个满足要求的软件。 软件复用需要设计模式的帮助。因为,在软件开发中,设计模式可以通过封装变化来提高代码的可扩展性和可维护性!

这段话也是我之前写给小傅哥的《重学 Java 设计模式》这本书的推荐语中的一小部分。

  • Github 地址:github.com/iluwatar/jav
  • 在线网站:https://java-design-patterns.com

Hippo-4J:动态可观测线程池框架


有什么比较优秀的Java开源项目?  第23张

Hippo-4J 概览


项目介绍

  • 一款强大的动态线程池框架,解决了传统线程池使用存在的一些痛点比如线程池参数没办法动态修改、不支持运行时变量的传递、无法执行优雅关闭。
  • 除了支持动态修改线程池参数、线程池任务传递上下文,还支持通知报警、运行监控等开箱即用的功能。
  • 内置两种使用模式,轻量级依赖配置中心或者无中间件依赖版本。

功能架构


有什么比较优秀的Java开源项目?  第24张

Hippo-4J 功能架构

相关地址

  • 项目地址:github.com/opengoofy/hi
  • 官网:hippo4j.cn

JeecgBoot:低代码快速开发平台

有什么比较优秀的Java开源项目?  第25张

JeecgBoot 概览

项目介绍

  • 一款基于代码生成器的 J2EE 低代码快速开发平台,支持生成前后端分离架构的项目。
  • 强大的代码生成器可以生成前后端代码,帮助Java项目解决70%重复工作。
  • 后端框架为主流的 SpringBoot 2.x,前端为主流的 Ant Design&Vue。另外,还用到了 Mybatis-plus 数据库层面的框架,以及 Shiro 和 JWT 做身份认证和权限管理。

整个项目的技术架构如下图所示,README 文档已经贴好了,我就直接复制过来了。

有什么比较优秀的Java开源项目?  第26张

JeecgBoot 技术架构

效果展示

相关地址

  • 项目地址:gitee.com/jeecg/jeecg-b
  • 在线演示 :boot.jeecg.com
  • 官网:jeecg.com

IoTDB:国产时序数据库


有什么比较优秀的Java开源项目?  第27张

IoTDB 概览

项目介绍

  • 一款 Java 语言编写的国产时序数据库,为用户提供数据收集、存储和分析等服务。
  • 与 Hadoop、Spark和可视化工具(如Grafana)无缝集成,满足了工业 IoT 领域中海量数据存储、高吞吐量数据写入和复杂数据查询分析的需求。

最早听说 iotdb 这个项目,是通过博士五年,我在清华做时序数据库这篇文章。铁头乔大佬 2016 年西安交大计算机系本科毕业之后,来到清华大学软件学院直博,主要做的就是 Apache IoTDB。

技术架构

有什么比较优秀的Java开源项目?  第28张

IoTDB 技术架构

相关地址

  • 项目地址:github.com/apache/iotdb
  • 官网:iotdb.apache.org/

Q-calculator:高性能优惠叠加计算框架

项目介绍 :一款高性能电商优惠叠加计算框架,就比如说用户消费了 100 元,他同时有一个 8 折优惠券和一个满 100-20 的优惠券,Q-calculator 可以帮助你高性能地找到优惠的最优解。


有什么比较优秀的Java开源项目?  第29张

Q-calculator 用途示例


项目地址github.com/CyrilFeng/Q-

Beekeeper Studio:一款跨平台的数据库管理工具

Beekeeper Studio 是一款跨平台的数据库管理工具,颜值非常高,支持 SQLite、MySQL、MariaDB、Postgres、CockroachDB、SQL Server、Amazon Redshift。

有什么比较优秀的Java开源项目?  第30张

Beekeeper Studio

特点如下:

  • 界面超级美观,自带深色主题
  • Windows、macOS、Linux 都可以使用
  • 可以保存查询以备后用
  • 具有语法高亮显示、自动补全的 SQL 查询编辑器

软件的下载地址:beekeeperstudio.io/get

更多优质 Java 开源项目推荐请看:Java 开源项目精选

有什么比较优秀的Java开源项目?  第1张

推荐

历史优质开源项目推荐地址:Github 掘金计划。

Github掘金计划:计算机专业必读哪些经典书籍?Github掘金计划:Github 优质 C 开源项目汇总!2023 最新版请问如何短时间突击 Java 通过面试?

Github掘金计划由3位志同道合热爱开源的小伙伴维护,我们想让 Github 和 Gitee 上优质的开源项目被更多人看到!如果有帮助的话点个在看或者赞就是对我们最大的鼓励!

END

免责声明:本文由卡卷网编辑并发布,但不代表本站的观点和立场,只提供分享给大家。

卡卷网

卡卷网 主页 联系他吧

请记住:卡卷网 Www.Kajuan.Net

欢迎 发表评论:

请填写验证码