查看原文
其他

轻量!Google 开源了一个简易版 Spring !

Guide JavaGuide 2022-10-28

《Java 面试指北》来啦!这是一份教你如何更高效地准备面试的小册,涵盖常见八股文(系统设计、常见框架、分布式、高并发 ......)、优质面经等内容。

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

前 5 期的项目推荐传送门:

这 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  ··············

近期文章精选 :


如果本文对你有帮助的话,欢迎点赞&在看&分享,这对我继续分享&创作优质文章非常重要。感谢🙏🏻

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存