# awesome-java **Repository Path**: david2016/awesome-java ## Basic Information - **Project Name**: awesome-java - **Description**: awesome - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-01-05 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README


中文 | English
Great Java project on Github(Github 上非常棒的 Java 开源项目).

大家都知道 Github 是一个程序员福地,这里有各种厉害的开源框架、软件或者教程。这些东西对于我们学习和进步有着莫大的进步,所以我有了这个将 Github 上非常棒的 Java 开源项目整理下来的想法。我会按照几个维度对项目进行分类,以便大家查阅。当然,如果你觉得不错的话,欢迎给本项目点个 Star。我会用我的业余时间持续完善这份名单,谢谢 🙏。 欢迎大家推荐自己觉得不错的 Java 项目,下面项目的排序很大程度是根据当前项目的 Star 数量。 如果有码云上比较好的项目的话,我也会推荐到这里来!另外,我也会推荐少部分过于优秀但是非开源的优质 Java 项目。 ## 目录 - [教程](#教程) - [Java](#java) - [数据结构/算法](#数据结构算法) - [SpringBoot](#springboot) - [SpringCloud](#springcloud) - [大数据](#大数据) - [设计模式](#设计模式) - [实战项目](#实战项目) - [系统设计](#系统设计) - [微服务/分布式](#微服务分布式) - [基础框架](#基础框架) - [Spring Cloud Alibaba 相关](#spring-cloud-alibaba-相关) - [API 网关](#api-网关) - [其他](#其他) - [消息中间件](#消息中间件) - [搜索引擎](#搜索引擎) - [数据库](#数据库) - [其他](#其他-1) - [工具](#工具) - [常用工具类/代码质量](#常用工具类代码质量) - [Excel](#excel) - [PDF](#pdf) - [开发必备](#开发必备) - [API 请求](#api-请求) - [Markdown](#markdown) - [其他](#其他-2) - [说明](#说明) - [成员列表](#成员列表) ## 教程 ### Java 1. **[JavaGuide](https://github.com/Snailclimb/JavaGuide "JavaGuide")** :【Java 学习+面试指南】 一份涵盖大部分 Java 程序员所需要掌握的核心知识。 2. **[CS-Notes](https://github.com/CyC2018/CS-Notes "CS-Notes")** :技术面试必备基础知识、Leetcode 题解、后端面试、Java 面试、春招、秋招、操作系统、计算机网络、系统设计。 3. **[advanced-java](https://github.com/doocs/advanced-java "advanced-java")** :互联网 Java 工程师进阶知识完全扫盲:涵盖高并发、分布式、高可用、微服务、海量数据处理等领域知识。 4. **[miaosha](https://github.com/qiurunze123/miaosha "miaosha")** : 秒杀系统设计与实现.互联网工程师进阶与分析。 5. **[architect-awesome](https://github.com/xingshaocheng/architect-awesome "architect-awesome")** :后端架构师技术图谱。 6. **[toBeTopJavaer](https://github.com/hollischuang/toBeTopJavaer "toBeTopJavaer")** :Java 工程师成神之路 。 7. **[tutorials](https://github.com/eugenp/tutorials "tutorials")**:该项目是一系列小而专注的教程 - 每个教程都涵盖 Java 生态系统中单一且定义明确的开发领域。 当然,它们的重点是 Spring Framework - Spring,Spring Boot 和 Spring Securiyt。 除了 Spring 之外,还有以下技术:核心 Java,Jackson,HttpClient,Guava。 8. **[JCSprout](https://github.com/crossoverJie/JCSprout "JCSprout")** :处于萌芽阶段的 Java 核心知识库。 9. **[JavaFamily](https://github.com/AobingJava/JavaFamily "JavaFamily")** :【互联网一线大厂面试+学习指南】进阶知识完全扫盲。 10. **[JGrowing](https://github.com/javagrowing/JGrowing "JGrowing")** :Java is Growing up but not only Java。Java 成长路线,但学到不仅仅是 Java。 ### 数据结构/算法 1. **[LeetCodeAnimation](https://github.com/MisterBooo/LeetCodeAnimation "LeetCodeAnimation")** :Demonstrate all the questions on LeetCode in the form of animation.(用动画的形式呈现解 LeetCode 题目的思路)。 2. **[TheAlgorithms-Java](https://github.com/TheAlgorithms/Java "TheAlgorithms-Java")** :All Algorithms implemented in Java。 ### SpringBoot 1. **[springboot-guide](https://github.com/Snailclimb/springboot-guide)** :SpringBoot 核心知识点总结。 基于 Spring Boot 2.19+。 2. **[SpringAll](https://github.com/wuyouzhuguli/SpringAll "SpringAll")** :循序渐进,学习 Spring Boot、Spring Boot & Shiro、Spring Cloud、Spring Security & Spring Security OAuth2,博客 Spring 系列源码。 3. **[springboot-learning-example](https://github.com/JeffLi1993/springboot-learning-example "springboot-learning-example")** :Spring Boot 实践学习案例,是 Spring Boot 初学者及核心技术巩固的最佳实践。 4. **[spring-boot-demo](https://github.com/xkcoding/spring-boot-demo "spring-boot-demo")** :spring boot demo 是一个用来深度学习并实战 spring boot 的项目,目前总共包含 63 个集成 demo,已经完成 52 个。 5. **[SpringBoot-Labs](https://github.com/YunaiV/SpringBoot-Labs)** :Spring Boot 系列教程。 ### SpringCloud 1. **[SpringCloudLearning](https://github.com/forezp/SpringCloudLearning "SpringCloudLearning")** : 方志朋的《史上最简单的 Spring Cloud 教程源码》。 2. **[SpringCloud-Learning](https://github.com/dyc87112/SpringCloud-Learning "SpringCloud-Learning")** : Spring Cloud 基础教程,持续连载更新中。 3. **[spring-cloud](https://github.com/yinjihuan/spring-cloud "spring-cloud")** : 《Spring Cloud 微服务-全栈技术与案例解析》和《Spring Cloud 微服务 入门 实战与进阶》配套源码。 4. **[spring-cloud-examples](https://github.com/ityouknow/spring-cloud-examples "spring-cloud-examples")** :Spring Cloud 学习案例,服务发现、服务治理、链路追踪、服务监控等 (基本没更新了,Spring Cloud 比较老了)。 5. **[SpringCloud](https://github.com/zhoutaoo/SpringCloud "SpringCloud")** :基于 SpringCloud2.1 的微服务开发脚手架,整合了 spring-security-oauth2、nacos、feign、sentinel、springcloud-gateway 等。服务治理方面引入 elasticsearch、skywalking、springboot-admin、zipkin 等,让项目开发快速进入业务开发,而不需过多时间花费在架构搭建上。 ### 大数据 1. **[BigData-Notes](https://github.com/heibaiying/BigData-Notes "BigData-Notes")** :大数据入门指南 ⭐️。 2. **[flink-learning](https://github.com/zhisheng17/flink-learning "flink-learning")** :含 Flink 入门、概念、原理、实战、性能调优、源码解析等内容。 ### 设计模式 1. **[java-design-patterns](https://github.com/iluwatar/java-design-patterns "java-design-patterns")** : Design patterns implemented in Java。 ## 实战项目 1. **[mall](https://github.com/macrozheng/mall "mall")** :mall 项目是一套电商系统,包括前台商城系统及后台管理系统,基于 SpringBoot+MyBatis 实现。 2. **[mall-swarm](https://github.com/macrozheng/mall-swarm "mall-swarm")** : mall-swarm 是一套微服务商城系统,采用了 Spring Cloud Greenwich、Spring Boot 2、MyBatis、Docker、Elasticsearch 等核心技术,同时提供了基于 Vue 的管理后台方便快速搭建系统。 3. **[Spring-Cloud-Admin](https://github.com/wxiaoqi/Spring-Cloud-Admin "Spring-Cloud-Admin")** :Cloud-Admin 是国内首个基于 Spring Cloud 微服务化开发平台,具有统一授权、认证后台管理系统,其中包含具备用户管理、资源权限管理、网关 API 管理等多个模块,支持多业务系统并行开发,可以作为后端服务的开发脚手架。代码简洁,架构清晰,适合学习和直接项目中使用。核心技术采用 Spring Boot2 以及 Spring Cloud Gateway 相关核心组件,前端采用 vue-element-admin 组件。 4. **[pig](https://gitee.com/log4j/pig "pig")**:(gitee)基于 Spring Boot 2.2、 Spring Cloud Hoxton & Alibaba、 OAuth2 的 RBAC 权限管理系统。 5. **[litemall](https://github.com/linlinjava/litemall "litemall")** : 又一个小商城。litemall = Spring Boot 后端 + Vue 管理员前端 + 微信小程序用户前端 + Vue 用户移动端。 6. **[vhr](https://github.com/lenve/vhr "vhr")** :微人事是一个前后端分离的人力资源管理系统,项目采用 SpringBoot+Vue 开发。 7. **[FEBS-Shiro](https://github.com/wuyouzhuguli/FEBS-Shiro "FEBS-Shiro")** :Spring Boot 2.1.3,Shiro1.4.0 & Layui 2.5.4 权限管理系统。 ## 系统设计 ### 微服务/分布式 #### 基础框架 1. **[spring-boot](https://github.com/spring-projects/spring-boot "spring-boot")** :Spring Boot 可以轻松创建独立的生产级基于 Spring 的应用程序,内置 web 服务器让你可以像运行普通 Java 程序一样运行项目。另外,大部分 Spring Boot 项目只需要少量的配置即可,这有别于 Spring 的重配置。 2. **[spring-cloud-alibaba](https://github.com/alibaba/spring-cloud-alibaba "spring-cloud-alibaba")** : Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。 3. **[spring-cloud-kubernetes](https://github.com/spring-cloud/spring-cloud-kubernetes "spring-cloud-kubernetes")** : Kubernetes 集成 Spring Cloud Discovery Client, Configuration, etc...。 #### Spring Cloud Alibaba 相关 1. **[Sentinel](https://github.com/alibaba/Sentinel "Sentinel")** :A lightweight powerful flow control component enabling reliability and monitoring for microservices. (轻量级的流量控制、熔断降级 Java 库)。 2. **[dubbo](https://github.com/apache/dubbo "dubbo")** :Apache Dubbo 是一个基于 Java 的高性能开源 RPC 框架。 3. **[nacos](https://github.com/alibaba/nacos "nacos")** :Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 可以作为 Dubbo 的注册中心来使用。 4. **[seata](https://github.com/seata/seata "seata")** : Seata 是一种易于使用,高性能,基于 Java 的开源分布式事务解决方案。 5. **[RocketMQ](https://github.com/apache/rocketmq "RocketMQ")** :阿里巴巴开源的一款高性能、高吞吐量的分布式消息中间件。 #### API 网关 1. **[kong](https://github.com/Kong/kong "kong")** :Kong 是一个云本地的、快速的、可伸缩的分布式微服务抽象层(也称为 API 网关、API 中间件或在某些情况下称为服务网格)。2015 年作为开源项目发布,其核心价值是高性能和可扩展性。 2. **[soul](https://github.com/Dromara/soul "soul")** :高性能、基于 webflux 的反应式 Java API 网关 #### 其他 1. **[flink](https://github.com/apache/flink "flink")** :Apache Flink 是一个框架和分布式处理引擎,用于在*无边界和有边界*数据流上进行有状态的计算。Flink 能在所有常见集群环境中运行,并能以内存速度和任意规模进行计算。 2. **[skywalking](https://github.com/apache/skywalking "skywalking")** : 针对分布式系统的应用性能监控,尤其是针对微服务、云原生和面向容器的分布式系统架构。 3. **[apollo](https://github.com/ctripcorp/apollo "apollo")** :Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。 4. **[zipkin](https://github.com/openzipkin/zipkin "zipkin")** :Zipkin 是一个分布式跟踪系统。它有助于收集解决服务体系结构中的延迟问题所需的时序数据。功能包括该数据的收集和查找。 5. **[EasyScheduler](https://github.com/analysys/EasyScheduler "EasyScheduler")** : Easy Scheduler 是一个分布式工作流任务调度系统,主要解决“复杂任务依赖但无法直接监控任务健康状态”的问题。Easy Scheduler 以 DAG 方式组装任务,可以实时监控任务的运行状态。同时,它支持重试,重新运行等操作... 。 ### 消息中间件 1. **[RocketMQ](https://github.com/apache/rocketmq "RocketMQ")** :阿里巴巴开源的一款高性能、高吞吐量的分布式消息中间件。 2. **[Kafaka](https://github.com/apache/kafka "Kafaka")**: Kafka 是一种分布式的,基于发布 / 订阅的消息系统。关于它的入门可以查看:[Kafka 入门看这一篇就够了](https://github.com/Snailclimb/JavaGuide/blob/master/docs/system-design/data-communication/Kafka入门看这一篇就够了.md "Kafka入门看这一篇就够了") 3. **[RabbitMQ](https://github.com/rabbitmq "RabbitMQ")** :由 erlang 开发的基于 AMQP(Advanced Message Queue 高级消息队列协议)协议实现的消息队列。 ### 搜索引擎 1. **[elasticsearch](https://github.com/elastic/elasticsearch "elasticsearch")**:开源,分布式,RESTful 搜索引擎。 ### 数据库 - **[redisson](https://github.com/redisson/redisson "redisson")** : [Redisson](https://redisson.org/ "Redisson")是架设在[Redis](http://redis.cn/ "Redis")基础上的一个 Java 驻内存数据网格(In-Memory Data Grid)。支持超过 30 个对象和服务:Set, multiap, SortedSet, Map, List, Queue, Deque, Semaphore, Lock, AtomicLong, Map Reduce, Publish / Subscribe, Bloom filter, Spring Cache, Tomcat, Scheduler, JCache API, Hibernate, RPC。[Redisson 项目介绍](https://github.com/redisson/redisson/wiki/Redisson%E9%A1%B9%E7%9B%AE%E4%BB%8B%E7%BB%8D "Redisson项目介绍") ### 其他 1. **[canal](https://github.com/alibaba/canal "canal")** :阿里巴巴 MySQL binlog 增量订阅&消费组件。 2. **[DataX](https://github.com/alibaba/DataX "DataX")** :DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、DRDS 等各种异构数据源之间高效的数据同步功能。 3. **[cat](https://github.com/dianping/cat "cat")** : CAT 作为服务端项目基础组件,提供了 Java, C/C++, Node.js, Python, Go 等多语言客户端,已经在美团点评的基础架构中间件框架(MVC 框架,RPC 框架,数据库框架,缓存框架等,消息队列,配置系统等)深度集成,为美团点评各业务线提供系统丰富的性能指标、健康状况、实时告警等。 4. **[server](https://github.com/wildfirechat/server "server")** : 野火 IM 是一套跨平台、核心功能开源的即时通讯解决方案。 5. **[halo](https://github.com/halo-dev/halo "halo")** :Halo 可能是最好的 Java 博客系统。 ## 工具 ### 常用工具类/代码质量 1. **[lombok](https://github.com/rzwitserloot/lombok)** :使用 Lombok 我们可以简化我们的 Java 代码,比如使用它之后我们通过注释就可以实现 getter/setter、equals等方法。 2. **[guava](https://github.com/google/guava "guava")** :Guava 是一组核心库,其中包括新的集合类型(例如 multimap 和 multiset),不可变集合,图形库以及用于并发、I / O、哈希、原始类型、字符串等的实用程序! 3. **[p3c](https://github.com/alibaba/p3c "p3c")** :Alibaba Java Coding Guidelines pmd implements and IDE plugin。Eclipse 和 IDEA 上都有该插件,推荐使用! 4. **[arthas](https://github.com/alibaba/arthas "arthas")** : Arthas 是 Alibaba 开源的 Java 诊断工具。 5. **[sonarqube](https://github.com/SonarSource/sonarqube "sonarqube")** :SonarQube 支持所有开发人员编写更干净,更安全的代码。 6. **[checkstyle](https://github.com/checkstyle/checkstyle "checkstyle")** :Checkstyle 是一种开发工具,可帮助程序员编写符合编码标准的 Java 代码。它使检查 Java 代码的过程自动化,从而使人们不必执行这项无聊(但很重要)的任务。这使其成为想要实施编码标准的项目的理想选择。 7. **[pmd](https://github.com/pmd/pmd "pmd")** : 可扩展的多语言静态代码分析器。 8. **[spotbugs](https://github.com/spotbugs/spotbugs "spotbugs")** :SpotBugs 是 FindBugs 的继任者。静态分析工具,用于查找 Java 代码中的错误。 9. **[hutool](https://github.com/looly/hutool "hutool")** : Hutool 是一个 Java 工具包,也只是一个工具包,它帮助我们简化每一行代码,减少每一个方法,让 Java 语言也可以“甜甜的”。 ### Excel 1. **[easyexcel](https://github.com/alibaba/easyexcel)** :快速、简单避免OOM的java处理Excel工具。 ### PDF 1. **[pdfbox](https://github.com/apache/pdfbox)** :用于处理PDF文档的开放源码Java工具。该项目允许创建新的PDF文档、对现有文档进行操作以及从文档中提取内容。PDFBox还包括几个命令行实用程序。PDFBox是在Apache 2.0版许可下发布的。 2. **[OpenPDF](https://github.com/LibrePDF/OpenPDF)** :OpenPDF是一个免费的Java库,用于使用LGPL和MPL开源许可创建和编辑PDF文件。OpenPDF基于iText的一个分支。 3. **[itext7](https://github.com/itext/itext7)** :iText 7代表了想要利用利用好 PDF 的开发人员的更高级别的 sdk。iText 7配备了更好的文档引擎、高级和低级编程功能以及创建、编辑和增强 PDF 文档的能力,几乎对每个工作流都有好处。 4. **[FOP](https://xmlgraphics.apache.org/fop/)** :Apache FOP 项目的主要的输出目标是PDF。 ### 开发必备 #### API 请求 1. **[Insomnia](https://insomnia.rest/)** :像人类而不是机器人一样调试API。我平时经常用的,界面美观且轻量,总之很喜欢。 2. **[postman](https://www.getpostman.com/)** :API 请求生成器。 3. **[postwoman](https://github.com/liyasthomas/postwoman "postwoman")** :API 请求生成器-一个免费、快速、漂亮的 Postma 替代品。 #### Markdown 1. **[Typora](https://www.typora.io/)** :我一直用的一款 Markdown 工具,直接文件夹试图和目录试图,支持 Markdown 格式直接导出成 PDF、HTML 等格式。 2. **[markdown-here](https://github.com/adam-p/markdown-here)** :使用 markdown 语法发邮件,并且提供多种主题,快来拯救你的邮件格式吧! ### 其他 1. **[thingsboard](https://github.com/thingsboard/thingsboard "thingsboard")** :开源物联网平台 - 设备管理,数据收集,处理和可视化。 ## 说明 ### 成员列表