其他资源
相关源文件
本页面为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:用于构建内部培训平台的开源系统。
- HOJ、VOJ、OnlineJudge:具有分布式架构的在线判题系统。
- sg-exam、uexam:具有考试功能的教学管理平台。
来源: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:静态代码分析工具。
- Spotless、CheckStyle:代码格式化和风格检查。
- PMD、SpotBugs:用于查找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
知识星球 (Knowledge Planet)
知识星球是JavaGuide作者创建的一个私密分享社区,旨在与核心读者建立联系并提供优质内容
什么是知识星球?
知识星球是一个主要用于知识创作者与核心读者连接的私密交流圈。与微信群相比,知识星球在内容留存和信息管理方面有更好的优势。
会员权益
加入知识星球后,您将获得:
- 6个优质专栏的永久访问权限,涵盖面试、源码分析和项目实战
- 免费的PDF面试手册,专为社区成员制作
- 免费的简历修改服务(已帮助超过7000位社群成员)
- 一对一免费答疑(用心解答)
- 求职指导,帮助您高效规划职业生涯
- 学习打卡和阅读活动,提供动力和责任感
- 不定期福利,如节假日抽奖、赠送书籍、线下聚会等
来源: 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
主要板块
- 面试准备:简历、项目、源码学习、算法的实操指导
- 技术面试题:覆盖基础Java以外的更广泛主题
- 面试经验分享:高质量面试经验及参考资料
- 技术自测:自我测试题,帮助识别知识盲区
- 职业策略:个人成长经验分享
来源: 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
如果您有兴趣访问这些额外的资源,可以加入知识星球社区
- 订阅费用合理(早期被称为“一顿饭的钱”)
- 新成员可享30元优惠券
- 老用户可享半价续费
- 不满意可享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