其他
JAVA白学了
The following article is from 程序员巴士 Author 七十一
如若转载请联系原公众号
JAVA白学了
后端开发这么久了,以下Java 框架、库和软件你都了解吗?
Bean的映射
dOOv - 为类型安全的域模型验证和映射提供流畅的 API。它使用注释、代码生成和类型安全的 DSL 来使 bean 验证和映射变得快速而简单。 JMapper - 使用字节码操作进行闪电般的快速映射。支持注解和 API 或 XML 配置。 MapStruct - 基于约定优于配置的方法,简化不同 bean 类型之间的映射的代码生成器。 ModelMapper - 自动将对象相互映射的智能对象映射库。 Orika - JavaBean 映射框架,它递归地将数据从一个对象复制到另一个对象。 reMap - 基于 Lambda 和方法句柄的映射,如果对象具有不同的名称,则需要代码而不是注释。 Selma - 基于注释处理器的 bean 映射器。
代码构建
处理应用程序的构建周期和依赖关系的工具。
Apache Maven - 有利于约定优于配置的声明式构建和依赖管理。它可能比 Apache Ant 更可取,后者使用相当程序化的方法并且可能难以维护。 Bazel - 来自 Google 的工具,可快速可靠地构建代码。 Buck - 鼓励创建由代码和资源组成的小型、可重用模块。 Gradle - 通过 Groovy 编程而不是声明 XML 的增量构建。与 Maven 的依赖管理配合得很好。
IDE
试图简化开发的几个方面的集成开发环境。
Eclipse - 建立了支持大量插件和语言的开源项目。 intelliJ IDEA-支持多种 JVM 语言并为 Android 开发提供良好的选择。商业版面向企业部门。 jGRASP - 创建用于提供与调试器结合使用的软件可视化,例如控制结构图、UML 类图和对象查看器。 NetBeans - 提供从数据库访问到 HTML5 的多个 Java SE 和 EE 功能的集成。 Recaf - 字节码编辑器。 Visual Studio Code - 通过使用来自内部市场的扩展,通过简单、现代的工作流程为轻量级项目提供 Java 支持。
操作字节码
以编程方式操作字节码的库
ASM - 通用的低级字节码操作和分析。 Byte Buddy - 使用流畅的 API 进一步简化字节码生成。 bytecode-viewer -Java 8 Jar 和 Android APK 逆向工程套件。(仅限 GPL-3.0) Byteman - 在运行时通过 DSL(规则)操作字节码;主要用于测试/故障排除。(LGPL-2.1 或更高版本) cglib - 字节码生成库。 Javassist - 尝试简化字节码编辑。 Mixin - 使用真正的 Java 代码在运行时操作字节码。 Perses - 根据混沌工程原理在字节码级别动态注入故障/延迟。
JVM和JDK
JVM/JDK 的当前实现。
Adopt Open JDK - 社区驱动的 OpenJDK 构建,包括 HotSpot 和 OpenJ9。 Avian - 具有 JIT、AOT 模式和 iOS 端口的 JVM。 Corretto - Amazon 的 OpenJDK 的免费、多平台、生产就绪分发。(仅 GPL-2.0 WITH Classpath-exception-2.0) Dragonwell8 - OpenJDK 的下游版本,针对在线电子商务、金融、物流应用进行了优化。 Graal - 多语言可嵌入 JVM。(仅 GPL-2.0 WITH Classpath-exception-2.0) Liberica JDK - 从 OpenJDK 构建,经过全面测试并通过了 JCK。(仅 GPL-2.0 WITH Classpath-exception-2.0) OpenJ9 - 高性能、企业级、灵活许可、开放治理的跨平台 JVM,扩展和增强了 Eclipse OMR 和 OpenJDK 项目的运行时技术组件。 Open JDK - Open JDK 社区主页。(仅 GPL-2.0 WITH Classpath-exception-2.0) ParparVM - 适用于 iOS 的具有非阻塞、并发 GC 的 VM。(仅 GPL-2.0 WITH Classpath-exception-2.0) RedHat Open JDK - RedHat 的 OpenJDK 发行版。(仅 GPL-2.0 WITH Classpath-exception-2.0) SAP Machine - SAP 的免费、经过严格测试和 JCK 验证的 OpenJDK 友好分支。(仅 GPL-2.0 WITH Classpath-exception-2.0) Zulu - OpenJDK 为 Windows、Linux 和 macOS 构建。(仅 GPL-2.0 WITH Classpath-exception-2.0)
内省
有助于使 Java 内省和反射 API 更容易和更快地使用的库。
ClassGraph - ClassGraph(以前称为 FastClasspathScanner)是一个超快速、超轻量级、并行化的类路径扫描器和模块扫描器,适用于 Java、Scala、Kotlin 和其他 JVM 语言。 jOOR - jOOR 代表 jOOR 面向对象反射。它是 java.lang.reflect 包的简单包装器。 Mirror - 创建 Mirror 是为了解决一个简单的问题,通常命名为 ReflectionUtil,几乎所有依赖反射来完成高级任务的项目都使用它。 Objenesis - 允许在没有默认构造函数的情况下进行动态实例化,例如具有必需参数、副作用或抛出异常的构造函数。 ReflectASM - ReflectASM 是一个非常小的 Java 库,它通过使用代码生成来提供高性能反射。 Reflections - Reflections 扫描你的类路径,索引元数据,允许你在运行时查询它,并且可以为你的项目中的许多模块保存和收集这些信息。
消息队列
帮助在客户端之间发送消息以确保协议独立性的工具。
Aeron - 高效、可靠、单播和多播的消息传输。 Apache ActiveMQ - 实现 JMS 并将同步通信转换为异步通信的消息代理。 Apache Camel - 通过企业集成模式将不同的传输 API 粘合在一起。 Apache Kafka - 高吞吐量分布式消息传递系统。 Apache Pulsar - 分布式发布/子消息系统。 Apache RocketMQ - 快速、可靠且可扩展的分布式消息传递平台。 Apache Qpid - Apache Qpid 制作了使用 AMQP 并支持多种语言和平台的消息传递工具。 EventBus - 简单的发布/订阅事件总线。 Hermes - 建立在 Kafka 之上的快速可靠的消息代理。 JeroMQ - ZeroMQ 的实现。 Nakadi - 在 Kafka 之上提供 RESTful API。 RabbitMQ Java 客户端- RabbitMQ 客户端。 Smack - 跨平台 XMPP 客户端库。 NATS 客户端- NATS 客户端。
微服务
用于创建和管理微服务的工具。
ActiveRPC - 用于复杂的高负载分布式应用程序和类似 Memcached 的解决方案的轻量级和快速库。 Apollo - 用于编写可组合微服务的库。 Armeria - 建立在 Java 8、Netty、HTTP/2、Thrift 和 gRPC 之上的异步 RPC/REST 客户端/服务器库。 consul-api -Consul API 的客户端:分布式、高可用性和数据中心感知的注册/发现服务。 Eureka - 基于 REST 的服务注册表,用于弹性负载平衡和故障转移。 Helidon - 两种编写微服务的方法:功能反应式和作为 MicroProfile 的实现。 Micronaut - 现代全栈框架,专注于模块化、最小内存占用和启动时间。 Nacos - 用于构建云原生应用程序的动态服务发现、配置和服务管理平台。 Quarkus - 为 HotSpot 和 Graal VM 量身定制的 Kubernetes 堆栈。 Sentinel - 流控制组件,可实现微服务的可靠性、弹性和监控。
日志记录
记录应用程序行为的库。
Apache Log4j 2 - 使用强大的插件和配置架构完成重写。 Graylog - 适用于扩展角色和权限管理的开源聚合器。(仅限 GPL-3.0) Kibana - 分析和可视化日志文件。有些功能需要付费。 Logback - 强大的日志库,通过 Groovy 提供有趣的配置选项。 Logbook - 用于 HTTP 请求和响应日志记录的可扩展开源库。 Logstash - 用于管理日志文件的工具。 p6spy - 为所有 JDBC 事务启用日志记录,而无需更改代码。 SLF4J - 抽象层/简单的日志记录外观。 tinylog - 具有静态记录器类的轻量级记录框架。 OpenTracing Toolbox - 建立在 OpenTracing 之上并为现有仪器提供扩展和插件的库的集合。
作业调度
用于调度后台作业的库。
JobRunr - 作业调度库,它利用 lambdas 进行即发即弃、延迟和重复作业。使用乐观锁定保证单个调度程序实例的执行。具有持久性、最小依赖性和可嵌入的特性。 Quartz - 功能丰富的开源作业调度库,几乎可以集成到任何 Java 应用程序中。 Sundial - 轻量级框架,用于简单地定义作业、定义触发器和启动调度程序。 Wisp - 具有最小占用空间和简单 API 的简单库。 db-scheduler - 持久且对集群友好的调度程序。 easy-batch - 使用简单的处理管道设置批处理作业。记录从数据源按顺序读取,在管道中处理并批量写入数据接收器。 shedlock - 确保您的计划任务最多同时执行一次。如果一个任务正在一个节点上执行,它会获取一个锁,以防止从另一个节点或线程执行相同的任务。
JSON
用于对 Java 对象进行 JSON 序列化和反序列化的库。
DSL-JSON - 具有高级编译时数据绑定的 JSON 库。 Genson - 功能强大且易于使用的 Java 到 JSON 转换库。 Gson - 将对象序列化为 JSON,反之亦然。即时使用的良好性能。 HikariJSON - 高性能 JSON 解析器,比 Jackson 快 2 倍。 jackson-modules-java8 - 一组用于 Java 8 数据类型和功能的 Jackson 模块。 Jackson-datatype-money - 开源 Jackson 模块,支持 JavaMoney 数据类型的 JSON 序列化和反序列化。 Jackson - 类似于 GSON,但如果您需要更频繁地实例化库,可以提供性能提升。 JSON-io - 将 Java 转换为 JSON。将 JSON 转换为 Java。漂亮的打印 JSON。Java JSON 序列化程序。 jsoniter - 具有迭代器和惰性解析 API 的快速灵活的库。 LoganSquare - 基于 Jackson 的流 API 的 JSON 解析和序列化库。优于 GSON 和 Jackson 的库。 Moshi - 现代 JSON 库,不那么固执己见,并使用 List 和 Map 等内置类型。 Yasson - 类和 JSON 文档之间的绑定层,类似于 JAXB。 fastjson - 非常快的处理器,没有额外的依赖和完整的数据绑定。 Jolt - JSON 到 JSON 的转换工具。 JsonPath - 使用类似 XPATH 的语法从 JSON 中提取数据。 JsonSurfer - 专用于处理大而复杂的 JSON 数据的流式 JsonPath 处理器。
监控
监控生产中的应用程序的工具。
Automon - 将 AOP 的强大功能与监控和/或日志工具相结合。 Failsafe Actuator - 在 Spring-Boot 环境中对故障安全断路器的开箱即用监控。 Glowroot - 开源 Java APM。 inspectIT - 通过可以动态更改的挂钩捕获详细的运行时信息。它支持通过 OpenTracing API 对多个系统进行跟踪,并且可以将数据与最终用户监控相关联。 JavaMelody - 性能监控和分析。 Jaeger 客户端- Jaeger 客户端。 jmxtrans - 连接到多个 JVM 并通过 JMX 查询它们的属性。它的查询语言基于 JSON,它允许非 Java 程序员访问 JVM 属性。支持不同的输出写入,包括 Graphite、Ganglia 和 StatsD。 Jolokia - 基于 REST 的 JMX。 指标- 通过 JMX 或 HTTP 公开指标并将它们发送到数据库。 nudge4j - 通过字节码注入从 Java 8 浏览器远程开发者控制台。 Pinpoint - 开源 APM 工具。 Prometheus - 提供多维数据模型、DSL、自治服务器节点等等。 Stagemonitor - JVM 应用程序的开源性能监控和事务跟踪。 Sysmon - 用于 Java VM 的轻量级平台监控工具。 zipkin - 分布式跟踪系统,它收集解决微服务架构中的延迟问题所需的时间数据。
网络
用于构建网络服务器的库。
Commons-networking - 服务器发送事件 (SSE) 的客户端。 Comsat - 将标准 Java Web 相关 API 与 Quasar 光纤和参与者集成。 Dubbo - 高性能 RPC 框架。 Grizzly - NIO 框架。在 Glassfish 中用作网络层。 gRPC - 基于 protobuf 和 HTTP/2 的 RPC 框架。 KryoNet - 为使用 NIO 和 Kryo 的高效 TCP 和 UDP 客户端/服务器网络通信提供干净简单的 API。 MINA - 抽象的、事件驱动的异步 I/O API,用于通过 Java NIO 通过 TCP/IP 和 UDP/IP 进行网络操作。 Netty - 用于构建高性能网络应用程序的框架。 Drift - 易于使用、基于注释的库,用于创建 Thrift 客户端和可序列化类型。 ServiceTalk - 基于 Netty 构建的框架,具有针对特定协议量身定制的 API,并支持多种编程范式。 sshj - 以编程方式使用 SSH、SCP 或 SFTP。 TLS Channel - 通过 SSLEngine 实现 ByteChannel 接口,实现易于使用(类似套接字)的 TLS。 Undertow - 基于 NIO 提供阻塞和非阻塞 API 的 Web 服务器。在 WildFly 中用作网络层。(仅限 LGPL-2.1) urnlib - 表示、解析和编码 URN,如 RFC 2141 中所示。(仅限 GPL-3.0)
安全
处理安全、身份验证、授权或会话管理的库。
Apache Shiro - 执行身份验证、授权、加密和会话管理。 Bouncy Castle - 通用加密库和 JCA 提供程序,提供广泛的功能,从基本帮助程序到 PGP/SMIME 操作。 Cryptomator - 云中文件的多平台、透明、客户端加密。(仅限 GPL-3.0) Hdiv - 运行时应用程序,可抵御 OWASP 前 10 名中包含的应用程序安全风险,包括 SQL 注入、跨站点脚本、跨站点请求伪造、数据篡改和暴力攻击。 jjwt - 适用于 Java 和 Android 的 JSON Web 令牌。 jwt-java - 使用流畅的 API 轻松创建和解析 JSON Web 令牌并创建自定义的 JWT 验证器。 Jwks RSA - JSON Web 密钥集解析器。 Kalium - 网络和密码学 (NaCl) 库的绑定。 Keycloak - 用于浏览器应用程序和 RESTful Web 服务的集成 SSO 和 IDM。 Keywhiz - 用于分发和管理机密的系统。 Nbvcxz - 高级密码强度估计。 OACC - 提供基于权限的授权服务。 OTP-Java - 根据 RFC 4226 (HOTP) 和 RFC 6238 (TOTP) 的一次性密码生成器库。 pac4j - 安全引擎。 Password4j - 用户友好的密码库,支持 Argon2、Bcrypt、Scrypt、PBKDF2 和各种其他密码散列函数。 SecurityBuilder - 适用于 JCA 和 JSSE 类的 Fluent Builder API,尤其是 X.509 证书。 SSLContext-Kickstart - 用于使用 SSL/TLS 配置 HTTP 客户端的高级 SSL 上下文构建器。 Themis - 多平台高级加密库提供易于使用的加密来保护敏感数据:具有前向保密的安全消息传递、安全数据存储 (AES256GCM);适合构建端到端加密应用程序。 Tink - 为常见的加密任务提供简单且防误用的 API。
序列化
高效处理序列化的库。
FlatBuffers - 节省内存的序列化库,无需解包和解析即可访问序列化数据。 FST - JDK 兼容的高性能对象图序列化。 Kryo - 快速高效的对象图序列化框架。 MessagePack - 高效的二进制序列化格式。 PHP Serializer - 以 PHP 序列化格式序列化对象。
服务器
专门用于部署应用程序的服务器。
Apache Tomcat - 用于 Servlet 和 JSP 的强大、全面的服务器。 Apache TomEE - Tomcat 加 Java EE。 Jetty - 提供 Web 服务器和 javax.servlet 容器,以及对 HTTP/2、WebSocket、OSGi、JMX、JNDI、JAAS 和许多其他集成的支持。 nanohttpd - 小巧、易于嵌入的 HTTP 服务器。 WildFly - 以前称为 JBoss,由 Red Hat 开发,具有广泛的 Java EE 支持。(仅限 LGPL-2.1)
测试相关
模拟以帮助测试单个独立单元的工具。
JMockit - 集成测试、API 模拟和伪造以及代码覆盖。 Mockito - 模拟框架,可让您使用干净简单的 API 编写测试。 MockServer - 允许模拟与 HTTPS 集成的系统。 Moco - 用于存根和模拟的简洁 Web 服务。 PowerMock - 模拟静态方法、构造函数、最终类和方法、私有方法以及静态初始化程序的删除。 WireMock - 存根和模拟 Web 服务。
相关优质的书籍
核心 Java 第 I 卷——基础
核心 Java 第 II 卷——高级特性
Effective Java(第 3 版)
Java 并发实践 Thinking In Java
参考:https://github.com/akullpp/awesome-java
程序员专属卫衣
商品直购链接 👇 推荐阅读:
每日打卡赢积分兑换书籍入口