当前位置: 首页 > 科技观察

每个Java开发人员都应该知道的10个Github存储库

时间:2023-03-22 12:16:50 科技观察

Java是业务应用程序开发的第一大编程语言,也是顶级编程语言之一。Java有许多强大而丰富的存储库,虽然标准Java库功能强大,但在专业软件开发领域还需要其他Java库。今天,我就和大家一起盘点10个最流行的Java仓库:1.ApacheCommonsApacheCommons就像是Java软件开发中的一把瑞士小刀,扩展了很多JavaCore库。如果你想在你的项目中编写实用类,那么成熟强大的ApacheCommons库的可用性相对更好。ApacheCommons由43个模块库组成,涵盖集合、数学、类、数据库、缓存、I/OUtils等领域。它在行业中被广泛使用,如果您正在从事一个大型项目并且没有使用任何ApacheCommons库,那么您可能正在重新发明轮子。Github地址:https://commons.apache.org/2。GoogleGuavaGoogleGuava是另一个顶级通用Java库。最初由Google开发,由著名软件工程师JoshuaBloch设计。它现在是一个开源项目,由许多Google以外的工程师贡献,并且像ApacheCommons一样,它是模块化的并且包含许多独立的库。它涵盖了基本实用程序、集合、字符串操作、并发实用程序、图形库、散列等。与ApacheCommons库相比,Guava具有更好的设计。如果要创建或使用程序库,Guava库是首选。Github地址:https://github.com/google/guava3。Jackson在软件开发中,你要处理各种格式的数据,比如你需要加载或保存不同格式的数据,或者需要传输不同格式的数据。JSON是现代软件开发中事实上的数据交换格式,其他常见的数据格式有Avro、XML、YAML、Protobuf、CSV、BSON、CBR。Jackson是Java的一套数据处理库,JacksonJSON实际上是一个流式JSON解析器/生成器库。它还支持其他数据格式,如Avro、BSON、CBOR、CSV、Smile、Protobuf、XML或YAML,以及数据类型,如Guava、Joda、pcollection等。Jackson是高度模块化的,有一个提供基本功能的核心模块和各种扩展模块。地址:https://github.com/FasterXML/jackson4。JAXBXML是另一种流行的数据格式,它提供更严格的验证、存储和数据传输。在Java8之前,Java标准库支持XML,包括数据绑定。从Java9开始,XML处理功能不再是标准Java库的一部分,而是移到了一个单独的库JAXB中。JAXB提供了在Java中使用XML所需的一切。它为XML和Java代码之间的映射提供了一种标准且高效的方法。它还包括基于注解的数据绑定。项目地址:https://javaee.github.io/jaxb-v2/5。SLF4JSLF4J为各种日志API提供了一个简单统一的接口,以便最终用户可以在部署期间配置他们想要的日志API实现。LoggingAPI实现可以选择直接实现连接SLF4J的日志API,如:NLOG4J、SimpleLogger。也可以通过SLF4J提供的API实现开发相应的Log4jLoggerAdapter、JDK14LoggerAdapter等适配器。项目地址:http://www.slf4j.org/6。Log4j2ApacheLog4j2是Apache开发的Log4j的升级产品。我更喜欢Log4j2而不是Logback,尤其是对于大型项目,因为它提供了更好的性能。对于大型项目,日志库的性能至关重要,例如异步日志记录、峰值吞吐量和延迟。Github地址:https://logging.apache.org/log4j/2.x/performance.html7.Mockito单元/集成测试是软件开发过程中不可或缺的一部分。通常您想测试单个类(SUT),但它依赖于其他重量级类或外部功能(例如,数据库操作、I/O操作)。在这种情况下编写单元/集成测试的一种方法是模拟。Mockito是Java中使用最广泛的模拟库。在任何地方使用Mockito,无论您是测试小型项目还是大型复杂的企业Java项目。它提供了一个非常简单、干净的API,使您的单元/集成测试保持干净。8.AssertJAssertJ是我列表中第二个与TDD相关的库。测试的主要功能之一是验证测试结果是否符合预期结果。JUnit在org.junit.Assert类中内置了断言机制,提供了两个静态方法用于测试验证。对于专业的开发人员来说,这两种方法是不够的。幸运的是,Java世界中存在两个强大的库:Hamcrest和AssertJ。Github地址:https://assertj.github.io/doc/9。Hibernate在我们的日常生活中,作为一名软件工程师,我们不得不与数据存储打交道。目前,有多种类型的数据存储:SQL和大量的NoSQL数据存储。处理数据存储的一种方法是使用低级API(例如,用于SQL的JDBC),但这种方法有缺点,因此处理数据存储的最佳方法是引入抽象层。这个抽象层(ORM)将Java类映射到数据库表/集合。Hibernate是任何编程语言中最早的ORM库之一,它启发了业界许多类似的技术。尽管Hibernate以其用于SQL数据库的ORM功能而闻名。但它也扩展到NoSQL数据库。Hibernate也是模块化的,提供了一个核心模块和许多基于功能的模块。Github地址:https://hibernate.org/10。ApacheHTTP组件HTTP是迄今为止最常用和流行的应用层协议。Java标准库没有提供很多处理HTTP的功能。幸运的是,ApacheHTTPComponents提供了一个专注于HTTP和相关协议的Java组件工具集。ApacheHTTPComponents也非常模块化并且占用空间小。Github地址:https://hc.apache.org/