菜单

其他资源

相关源文件

本页面为JavaGuide主文档提供了有价值的补充资源,涵盖了推荐的开源项目、开发工具、知识社区、专题栏目和学习资料,可帮助您加速Java开发之旅并促进职业成长。

开源项目

Java开发者可以从利用高质量的现有开源项目中获益良多。以下我们将按类别整理了大量的顶级Java开源项目。

系统设计项目

本节涵盖了帮助构建健壮系统的框架和工具,从基本的Web框架到高级的云原生服务。

基础框架

最受欢迎的Java Web框架包括:

  • Spring Boot:使创建独立的、生产级的、基于Spring的应用程序变得容易。
  • Solon:国内全场景企业级应用开发框架。
  • Javalin:一个轻量级的Java和Kotlin Web框架。
  • Play Framework:用于Java和Scala的高速Web框架。
  • Blade:一个基于Java 8的轻量级、高性能Web框架。

来源:docs/open-source-project/system-design.md9-17

微服务/云原生

对于云原生和微服务架构,这些框架提供了强大的解决方案。

  • Armeria:一个适用于任何微服务开发的微服务框架。
  • Quarkus:一个用于容器优先开发的Kubernetes原生Java框架。
  • Helidon:一套用于编写微服务的Java库。

来源:docs/open-source-project/system-design.md18-23

API文档和Bean映射

用于改进API文档和Java对象之间数据映射的工具。

  • Swagger/OpenAPI:API文档的工具和规范。
  • Knife4j:结合Swagger2和OpenAPI3的增强解决方案。
  • MapStruct:类型安全、高性能的Java Bean映射。
  • JMapper:高性能、易于使用的Bean映射框架。

来源:docs/open-source-project/system-design.md24-33

认证与授权

用于处理Java应用程序中身份验证和授权的安全框架。

  • Sa-Token:轻量级Java权限认证框架。
  • Spring Security:功能强大的综合性安全框架。
  • Shiro:比Spring Security更简洁的替代方案。
  • 第三方登录:WxJava、JustAuth。
  • SSO解决方案:CAS、MaxKey、Keycloak。

来源:docs/open-source-project/system-design.md42-56

网络与通信

  • Netty:高性能、异步事件驱动的网络应用程序框架。
  • Retrofit:适用于Android和Java的类型安全HTTP客户端。
  • Forest:轻量级HTTP客户端API框架。
  • netty-websocket-spring-boot-starter:通过Netty简化WebSocket开发。

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

数据库相关的框架和工具。

  • 连接池:Druid、HikariCP。
  • ORM/数据库框架:MyBatis-Plus、MyBatis-Flex、jOOQ、Redisson。
  • 数据同步:Canal、DataX。
  • 时序数据库:IoTDB、KairosDB。

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

搜索引擎与测试

  • 搜索引擎:Elasticsearch、Meilisearch、Solr、Easy-ES。
  • 测试框架:JUnit、Mockito、PowerMock、WireMock、Testcontainers。

来源:docs/open-source-project/system-design.md92-112

实践项目

实践中的开源项目提供了有价值的学习和开发实例。

快速开发平台

  • Snowy:国内首个基于加密的全栈快速开发平台。
  • eladmin:采用模块化开发方式的全栈管理系统。
  • RuoYi及其变体:简单美观的权限管理系统。

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

博客/论坛系统

  • paicoding:基于Spring Boot的强大开源社区。
  • forest:下一代知识社区系统。
  • community:一个开源的问答系统,包含问题、回复和通知等功能。

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

Wiki/文档系统

  • zyplayer-doc:面向团队的知识库和文档管理工具。
  • kkFileView:在线文档预览解决方案,支持大多数文档格式。

来源:docs/open-source-project/practical-project.md36-39

文件管理/云存储

  • qiwen-file:基于SpringBoot+Vue的分布式文件系统。
  • free-fs:基于SpringBoot和Layui的云存储管理系统。
  • zfile:支持多存储源的在线网盘。

来源:docs/open-source-project/practical-project.md41-45

考试/学习系统

  • PlayEdu:用于构建内部培训平台的开源系统。
  • HOJVOJOnlineJudge:具有分布式架构的在线判题系统。
  • sg-examuexam:具有考试功能的教学管理平台。

来源:docs/open-source-project/practical-project.md47-55

电子商务系统

  • congomall:具有特色的DDD设计的TOC电子商务系统。
  • mall:包含前端和后端的一站式电子商务系统。
  • litemall:集成了Spring Boot、Vue和微信小程序的小型电子商务系统。

来源:docs/open-source-project/practical-project.md57-64

票务系统

  • 12306:基于JDK17和Spring Cloud的高并发购票服务。

来源:docs/open-source-project/practical-project.md66-69

框架构建项目

这些项目能帮助你理解框架是如何构建的。

  • guide-rpc-framework:基于Netty、Kyro和Zookeeper的自定义RPC框架。
  • mini-spring:用于学习Spring内部机制的简化版Spring框架。
  • mini-spring-cloud:用于学习云基础设施的简化版Spring Cloud。
  • Freedom:具有ACID特性的DIY数据库。

来源:docs/open-source-project/practical-project.md77-85

工具和库

增强生产力和解决常见开发挑战的Java工具和库。

代码质量工具

  • Lombok:通过注解减少样板代码。
  • Guava:Google的Java核心库。
  • Hutool:功能齐全的工具库,依赖项极少。

来源:docs/open-source-project/tool-library.md7-12

问题诊断和性能优化

  • Arthas:阿里巴巴的Java诊断工具。
  • Async Profiler:低开销的Java性能分析工具。
  • Spring Boot Startup Reports:用于分析Spring Boot应用程序启动情况的工具。

来源:docs/open-source-project/tool-library.md14-18

文档处理

处理各种文档格式的库。

  • 文档解析:Apache Tika。
  • Excel处理:FastExcel、Excel Spring Boot Starter、Excel Streaming Reader。
  • Word处理:poi-tl。
  • JSON处理:JsonPath。
  • PDF处理:x-easypdf、OpenPDF、Apache PDFBox。

来源:docs/open-source-project/tool-library.md20-50

图像处理、验证码、短信/邮件和支付

  • 图像处理:Thumbnailator、Imglib。
  • 验证码:EasyCaptcha、AJ-Captcha、tianai-captcha。
  • 短信与邮件:SMS4J、Simple Java Mail。
  • 支付解决方案:Jeepay、YunGouOS-PAY-SDK、IJPay。

来源:docs/open-source-project/tool-library.md51-72

开发工具

Java开发者必备的开发工具。

代码质量工具

  • SonarQube:静态代码分析工具。
  • SpotlessCheckStyle:代码格式化和风格检查。
  • PMDSpotBugs:用于查找bug的静态分析工具。
  • P3C:阿里巴巴Java开发手册。

来源: docs/open-source-project/tools.md7-15

项目构建工具

  • Maven: 基于 POM 的项目管理工具
  • Gradle: 灵活的自动化构建工具

来源: docs/open-source-project/tools.md16-20

数据库工具

  • 数据库建模:CHINER
  • 数据库管理:Chat2DB, Beekeeper Studio, DBeaver, Sequel Pro
  • Redis 工具:Another Redis Desktop Manager, Redis Manager, CacheCloud

来源: docs/open-source-project/tools.md29-56

服务管理工具

  • Docker 工具:Portainer, lazydocker
  • ZooKeeper 工具:PrettyZoo, zktools
  • Kafka 工具:Kafka UI, Kafdrop, EFAK

来源: docs/open-source-project/tools.md58-72

AI项目

虽然Java不是最主流的AI开发语言,但也有一些值得关注的AI项目

基础框架

  • Spring AI:AI工程应用框架
  • Spring AI Alibaba:面向Java的AI应用开发框架
  • LangChain4j:LangChain的Java版本,用于LLM集成
  • Deeplearning4j:面向Java的商用级开源深度学习库

来源: docs/open-source-project/machine-learning.md10-17

实践应用

  • springboot-openai-chatgpt:集成GPT的SpringCloud微服务
  • ai-beehive:基于Spring Boot 3和JDK 17的AI蜂巢

来源: docs/open-source-project/machine-learning.md19-22

学习资源和教程

Java 教程

面向Java开发者的优质技术教程

核心Java学习

  • JavaGuide:涵盖Java学习和面试的全面指南
  • toBeBetterJavaer:易于理解、幽默的Java学习指南
  • advanced-java:面向互联网Java工程师的进阶主题
  • java-design-patterns:Java中的设计模式实现

来源: docs/open-source-project/tutorial.md7-18

系统设计学习

SpringBoot 和 Spring Cloud 教程,助你掌握这些框架

  • SpringBoot:springboot-guide, SpringAll, Springboot-Notebook, spring-boot-demo
  • SpringCloud:SpringCloudLearning, springcloud-learning
  • Nginx:nginx-tutorial,用于 HTTP 代理、HTTPS、负载均衡

来源: docs/open-source-project/tutorial.md28-49

大数据学习

  • juicy-bigdata:大数据技术入门课程
  • flink-learning:Flink 学习资料大全

来源: docs/open-source-project/tutorial.md51-54

开源书籍

  • 《高并发的哲学原理》:高并发的哲学
  • 《Effective Java (3rd Edition)》:中英双语版
  • 《DDIA》:“Designing Data-Intensive Applications” 中文翻译版
  • 《凤凰架构》:如何构建可靠的大规模分布式系统

来源: docs/open-source-project/tutorial.md56-61

JavaGuide 社区资源

知识星球 (Knowledge Planet)

知识星球是JavaGuide作者创建的一个私密分享社区,旨在与核心读者建立联系并提供优质内容

什么是知识星球?

知识星球是一个主要用于知识创作者与核心读者连接的私密交流圈。与微信群相比,知识星球在内容留存和信息管理方面有更好的优势。

会员权益

加入知识星球后,您将获得:

  1. 6个优质专栏的永久访问权限,涵盖面试、源码分析和项目实战
  2. 免费的PDF面试手册,专为社区成员制作
  3. 免费的简历修改服务(已帮助超过7000位社群成员)
  4. 一对一免费答疑(用心解答)
  5. 求职指导,帮助您高效规划职业生涯
  6. 学习打卡和阅读活动,提供动力和责任感
  7. 不定期福利,如节假日抽奖、赠送书籍、线下聚会等

来源: docs/about-the-author/zhishixingqiu-two-years.md7-108

独家专栏

知识星球设有多个独家特色专栏

  • 《Java 面试指北》:全面的面试指导
  • 《Java 必读源码系列》:Dubbo 2.6.x、Netty 4.x、Spring Boot 2.1 的源码分析
  • 《从零开始写一个 RPC 框架》:循序渐进的教程
  • 《Kafka 常见面试题/知识点总结》:Kafka 核心要点

来源: docs/about-the-author/zhishixingqiu-two-years.md46-93 docs/zhuanlan/source-code-reading.md9-11 docs/zhuanlan/handwritten-rpc-framework.md8-18

Java 面试指北

知识星球的旗舰内容是《Java 面试指北》专栏

内容和结构

《Java 面试指北》已积累超过270万阅读量、3550+点赞和1130+评论。其内容是对开源JavaGuide的补充,包含:

  • 17+篇面试准备文章,包含50+常见面试题的详细解析
  • 更全面的技术面试主题(系统设计、分布式系统、微服务、高并发)
  • 高质量的精选面试经历
  • 技术自测题
  • 职业发展策略

来源: docs/zhuanlan/java-mian-shi-zhi-bei.md7-22

主要板块

  1. 面试准备:简历、项目、源码学习、算法的实操指导
  2. 技术面试题:覆盖基础Java以外的更广泛主题
  3. 面试经验分享:高质量面试经验及参考资料
  4. 技术自测:自我测试题,帮助识别知识盲区
  5. 职业策略:个人成长经验分享

来源: docs/zhuanlan/java-mian-shi-zhi-bei.md30-76

手写RPC框架

特色专栏之一是关于如何从零开始构建RPC框架的教程

  • 12篇文章详细介绍了如何使用Netty、Kyro和Zookeeper实现RPC框架
  • 紧凑而完整的项目,带有详细注释和清晰的结构
  • 集成了CheckStyle,用于规范代码结构
  • 非常适合学习分布式系统原理和Java编码实践

来源: docs/zhuanlan/handwritten-rpc-framework.md8-16

加入社区

如果您有兴趣访问这些额外的资源,可以加入知识星球社区

  1. 订阅费用合理(早期被称为“一顿饭的钱”)
  2. 新成员可享30元优惠券
  3. 老用户可享半价续费
  4. 不满意可享3天内无理由退款

作者强调其有原则——不做误导性营销,内容为王,真心助人。

来源: docs/about-the-author/zhishixingqiu-two-years.md128-148

贡献 JavaGuide

JavaGuide 项目欢迎社区的贡献。正如作者在回顾GitHub收获10万星时所说,该项目已有:

  • 超过2933次提交
  • 207位贡献者
  • 511个问题和575个拉取请求

如果您觉得这些资源有价值,请考虑通过以下方式为项目做出贡献:

  • 提交需要改进内容的问题
  • 为新内容或更正创建拉取请求
  • 与可能从中受益的其他人分享资源

来源: docs/about-the-author/javaguide-100k-star.md12-33