「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 面试,首选 JavaGuide!:https://javaguide.cn/

你好,我是 Guide!这里是 JavaGuide 的「优质开源项目推荐」第 9 期,每一期我都会精选 5 个高质量的 Java 开源项目。

前 8 期的「优质开源项目推荐」传送门:https://javaguide.cn/open-source-project/

你可以通过 awesome-java (非常棒的 Java 开源项目集合,找 Java 项目必备)找到更多优质的 Java 开源项目。

mini-spring-cloud:简化版 Spring Cloud

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

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

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

Github 地址:https://github.com/DerekYRC/mini-spring-cloud

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。

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

相关阅读:Antlr4 简介

Spring Cloud Tencent:腾讯版 Spring Cloud

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

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

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

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

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

Github 地址:https://github.com/Tencent/spring-cloud-tencent

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

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

与同类型的二维码生成库相比,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) ...)
}
}

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

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

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

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

SpringBoot + JWT + Redis 开源知识社区系统的更多相关文章

  1. 备战春招!开源社区系统 Echo 超全文档助力面试

    博主东南大学硕士在读,寒假前半个月到现在差不多一个多月,断断续续做完了这个项目,现在终于可以开源出来了,我的想法是为这个项目编写一套完整的教程,包括技术选型分析.架构分析.业务逻辑分析.核心技术点分析 ...

  2. 开源Asp.Net Core小型社区系统

    源码地址:Github 前言 盼星星盼月亮,Asp.Net Core终于发布啦!! Asp.Net发布时我还在上初中,没有赶上.但是Asp.Net Core我从beta版本便一直关注.最初项目名叫As ...

  3. 转型?还是延伸?开源建站系统近乎推整套SNS社区解决方案

    转型?还是延伸?开源建站系统近乎推整套SNS社区解决方案 近乎(英文:Spacebuilder),作为.net领域的SNS社区建站系统代表之一,一直在技术开发领域算是兢兢业业,在Discuz!和Php ...

  4. DS Scheduler 0.7 发布,Linux 调度系统 - 开源中国社区

    DS Scheduler 0.7 发布,Linux 调度系统 - 开源中国社区 DS Scheduler 0.7 发布,Linux 调度系统

  5. PyRedisAdmin v1.0 Beta 发布,Redis 在线管理工具 - 开源中国社区

    PyRedisAdmin v1.0 Beta 发布,Redis 在线管理工具 - 开源中国社区 PyRedisAdmin v1.0 Beta 发布,Redis 在线管理工具

  6. Jeewx-Boot 1.1 版本发布,基于SpringBoot的开源微信管家系统

    项目介绍 JeewxBoot是一款基于SpringBoot的开源微信管家系统,采用SpringBoot2.1.3 + Mybatis + Velocity 框架技术.支持微信公众号.微信第三方平台(扫 ...

  7. SpringBoot + SpringSecurity + Mybatis-Plus + JWT + Redis 实现分布式系统认证和授权(刷新Token和Token黑名单)

    1. 前提   本文在基于SpringBoot整合SpringSecurity实现JWT的前提中添加刷新Token以及添加Token黑名单.在浏览之前,请查看博客:   SpringBoot + Sp ...

  8. Redis系统学习之SpringBoot集成Redis操作API(集成SpringDataRedis及其分析)

    SpringDataRedis调用Redis底层解读 在SpringBoot2.X之前还是直接使用的官方推荐的Jedis连接的Redis 在2.X之后换为了lettuce Jedis:采用直接连接,多 ...

  9. Java程序员博客系统推荐!我调研了100来个 Java 开源博客系统,发现这 5 个最好用!

    大家好!我是 Guide 哥,Java 后端开发.一个会一点前端,喜欢烹饪的自由少年. 最近想倒腾一下博客,看了很多现成的比较成熟的开源博客系统,自己也简单从下面几个维度总结对比了一下: star数量 ...

随机推荐

  1. MySQL入门学习day3随笔2

    用户创建及权限部分 1 create user Cra2iTeT identified by '123456'-- 创建用户 2 3 alter user 'Cra2iTeT'@'%' identif ...

  2. Java语言学习day40--8月15日

    ###12可变参数的注意事项 *A:可变参数的注意事项 /* * 可变参数的注意事项 * 1. 一个方法中,可变参数只能有一个 * 2. 可变参数,必须写在参数列表的最后一位 */ public st ...

  3. Linux:文件解压、复制和移动的若干坑

    Linux下进行文件的解压.复制.移动应该是最常见的操作了.尤其是我们在项目中使用大量的数据集文件(比如机器学习)时.然而使用这些命令时一不留神就会掉进坑里,这篇文章我们就来细数用Shell进行文件操 ...

  4. MySQL基础入门(1)

    MySQL基础入门(1) 为什么学习MySQL 关系数据库管理系统(Relational Database Management System, RDBMS)是一种极为重要的工具,其应用十分广泛,从商 ...

  5. Java基础语法Day_01

    第1节 java运行环境 day01_01_Java语言发展史 day01_02_计算机进制转换 day01_03_计算机存储单元 day01_04_命令提示符_基本介绍 day01_05_命令提示符 ...

  6. zookeeper篇-zoo.cfg配置

    点赞再看,养成习惯,微信搜索「小大白日志」关注这个搬砖人. 文章不定期同步公众号,还有各种一线大厂面试原题.我的学习系列笔记. zoo.cfg即/usr/local/java/zookeeper/co ...

  7. Linux-ssh-key验证

    ssh登录验证方式介绍 ssh服务登录的常用验证方式 用户/口令 基于密钥 基于用户和口令登录验证 客户端发起ssh请求,服务器会把自己的公钥发送给用户 用户会根据服务器发来的公钥对密码进行加密 加密 ...

  8. 2020 最烂密码 TOP 200 大曝光!

    点击上方"开源Linux",选择"设为星标" 回复"学习"获取独家整理的学习资料! 整理 | 王晓曼 出品 | 程序人生 (ID:coder ...

  9. 面试官给我挖坑:rm删除文件之后,空间就被释放了吗?

    在Linux,你是不是曾经天真的以为,使用rm删除一个文件,占用的空间就释放了?事情可能不是常常如人意. 产生一个指定大小的随机内容文件 我们先看一下当前各个挂载目录的空间大小: $ df -h /d ...

  10. css自定义省略实例2

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...