轻量!Google 开源了一个简易版 Spring !
《Java 面试指北》来啦!这是一份教你如何更高效地准备面试的小册,涵盖常见八股文(系统设计、常见框架、分布式、高并发 ......)、优质面经等内容。
你好呀,我是 Guide!这里是 JavaGuide 的「Java优质开源项目推荐」第 6 期,每一期我都会精选 5 个高质量的 Java 开源项目推荐给大家。
前 5 期的项目推荐传送门:
一款基于 Spring Boot + Vue 的一站式开源持续测试平台。 用 Java 写个沙盒塔防游戏!已上架 Steam,Apple Store 一款基于 Java 的可视化 HTTP API 接口开发神器 一款对业务代码无侵入的可视化 Java 进程管理平台 一个比 Spring 更轻量级的 Web 框架!!!微软、红帽都在用
这 5 个开源项目已经被收录进了 awesome-java (非常棒的 Java 开源项目集合,找 Java 项目必备)。
Github 地址:https://github.com/CodingDocs/awesome-java Gitee 地址:https://gitee.com/SnailClimb/awesome-java 在线阅读(阅读原文即可直达):https://javaguide.cn/open-source-project/
Guice:轻量级依赖注入框架
Guice 是 Google 开源的一个轻量级依赖注入框架,相当于一个功能极简化的轻量级 Spring Boot。在某些情况下非常实用,就比如说我们的项目只需要使用依赖注入,不需要 AOP 等功能特性。
Guice 的 Hello World 示例如下:
在第五期项目推荐一个比 Spring 更轻量级的 Web 框架!!!微软、红帽都在用的评论区就有一个民宿外企的小伙伴说自己用的就是 Guice 这个框架。
做 Java 后端开发的朋友一定不要离开了 Spring 就感觉啥也干不了了,也一定不要单纯地认为 Spring 就是 Web 框架的唯一选择。Java 生态非常优秀尤其是 Web 开发领域,Github 上还有非常多优秀的开源 Web 框架,后面我会多推荐一些类似的项目。
项目地址:https://github.com/google/guice 使用详解:https://www.cnblogs.com/throwable/p/15925396.html
JsonPath:JSON 数据处理
JsonPath 是一个简单易用的 JSON 数据工具类库,提供了开箱即用的 JSON 解析 API,内置了很多运算符和方法,支持 fluent API ,使用起来非常酸爽。
假设我们有如下 JSON 数据需要处理。
如果我们需要读取出所有书的作者,下面两行代码就可以了:
String json = "...";
List<String> authors = JsonPath.read(json, "$.store.book[*].author");
如果我们需要读取出金额大于 10 的书,下面一行代码就可以了:
List<Map<String, Object>> expensiveBooks = JsonPath
.using(configuration)
.parse(json)
.read("$.store.book[?(@.price > 10)]", List.class);
项目地址:https://github.com/json-path/JsonPath 。
tianai-captcha:好看又好用的滑块验证码
tianai-captcha 是一个开源的 Java 滑块验证码 解决方案,开箱即用,支持行为轨迹校验和混淆滑块。
项目地址:https://gitee.com/tianai/tianai-captcha 。
Testcontainers:测试工具库
Testcontainers 是一个支持 JUnit 的测试工具库,提供轻量级的且一次性的常见数据库测试支持、Selenium Web 浏览器或者其他任何可以在 Docker 容器中运行的实例支持。
Testcontainers 提供的一次性常见数据库测试支持有什么用呢?简单举个例子:假设我们有一个依赖 Redis 的程序,我们需要为其编写测试。如果测试直接使用的是本地安装的 Redis ,会带来很多麻烦,这意味着每个开发人员以及 CI 机器都必须安装 Redis 。并且,为了保证测试的正常运行 ,Redis 的版本也要尽量保持一致。显然,这是不太现实的!
Thoughtworks 第 26 期技术雷达这样写到:
根据长期使用 Testcontainers 的经验,我们认为它是创建可靠的环境来运行自动化测试的默认选项。Testcontainers 是一个拥有多种语言版本 的库,并且 docker 化了常见的测试依赖——包括了不同种类的数据库,队列技术,云服务和 UI 测试依赖(例如 web 浏览器),还具有按需运行自定义 Dockerfile 的能力。它与类似 JUnit 的测试框架兼容,而且足够灵活,可以让用户管理容器的生命周期和高级网络,并迅速建立一个集成测试环境
项目地址:https://github.com/testcontainers/testcontainers-java 官网 :https://www.testcontainers.org/
libgdx:
libgdx 是一款跨平台的 Java 游戏开发框架,适用于 Windows、Linux、macOS、Android、您的浏览器和 iOS,稳定且成熟。
并且,libgdx 的生态系统里有非常多现成的工具库,可以帮助我们节省很多事情。
如果你想要使用 Java 开发游戏的话,一定要来看看这个项目。
项目地址:https://github.com/libgdx/libgdx
·········· END ··············
近期文章精选 :
如果本文对你有帮助的话,欢迎点赞&在看&分享,这对我继续分享&创作优质文章非常重要。感谢🙏🏻