您好,登錄后才能下訂單哦!
這篇文章主要介紹“Java開發人員的常用類庫有哪些”,在日常操作中,相信很多人在Java開發人員的常用類庫有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Java開發人員的常用類庫有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
應用開發腳手架
1.Spring Framework
Spring框架為現代基于Java的企業應用程序提供了一個全面的編程和配置模型,使用開發基于Java語言的應用更加簡單、便捷。
github:https://github.com/spring-projects/spring-framework/
官網:https://spring.io/projects/spring-framework
2.Spring Boot
Spring Boot使創建獨立的、基于Spring的產品級應用程序變得非常容易。
官網:https://spring.io/projects/spring-boot
3.Spring Cloud Spring Cloud為開發人員提供了豐富的使用工具,開發人員基于這些工具可以快速構建分布式系統中的一些常見功能(例如,配置管理,服務發現,斷路器,智能路由,微代理,控制總線,一次性令牌,全局鎖,領導選舉,分布式會話等)。
官網:https://spring.io/projects/spring-cloud
Web服務接口
1.Jersey
Jersey是一個REST框架,它提供JAX-RS參考實現等。Jersey提供了自己的api,這些api通過附加的特性和實用程序擴展了JAX-RS工具包,從而進一步簡化了RESTful服務和客戶端開發。Jersey還公開了許多擴展spi,以便開發人員可以擴展Jersey以最適合他們的需求。
github:https://github.com/eclipse-ee4j/jersey
2.Spring Web MVC
Spring Web MVC是基于Servlet API構建的原始Web框架,從一開始就已包含在Spring框架中。正式名稱“ Spring Web MVC”來自其源模塊的名稱(spring-webmvc),但通常稱為“Spring MVC”。
官網:https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/web.html
數據持久化框架
1.MyBatis
MyBatis是一個一流的持久性框架,支持自定義SQL、存儲過程和高級映射,它幾乎消除了JDBC代碼、參數手動設置和結果檢索。MyBatis可以使用簡單的XML或注釋進行配置,并將原語、接口和javapojo(普通的舊Java對象)映射到數據庫記錄。
官網:https://mybatis.org/mybatis-3/
github:https://github.com/mybatis/mybatis-3
2.Hibernate
Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,它將POJO與數據庫表建立映射關系,是一個全自動的orm框架,hibernate可以自動生成SQL語句,自動執行,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數據庫。
官網:http://hibernate.org/
Excel讀寫
1.Alibaba EasyExcel
Java解析、生成Excel比較有名的框架有Apache poi、jxl。但他們都存在一個嚴重的問題就是非常的耗內存,poi有一套SAX模式的API可以一定程度的解決一些內存溢出的問題,但POI還是有一些缺陷,比如07版Excel解壓縮以及解壓后存儲都是在內存中完成的,內存消耗依然很大。easyexcel重寫了poi對07版Excel的解析,能夠原本一個3M的excel用POI sax依然需要100M左右內存降低到幾M,并且再大的excel不會出現內存溢出,03版依賴POI的sax模式。在上層做了模型轉換的封裝,讓使用者更加簡單方便。
github:https://github.com/alibaba/easyexcel
2.Apache POI
一個用于讀寫Microsoft Office二進制和OOXML文件格式的Java庫,可用于讀寫Excel 97-2008。
github:https://github.com/apache/poi
CSV讀寫
1.Apache Commons CSV
Apache Commons CSV庫提供了用于讀取和寫入各種類型CSV文件的接口。
github:https://github.com/apache/commons-csv
2.Java CSV
Java CSV是一個小型、快速且開源Java庫,用于讀、寫各種CSV文件。
官網:https://www.csvreader.com/java_csv.php
API:http://javacsv.sourceforge.net/
3.Super CSV
Super CSV是一個快速、免費跨平臺的CSV格式數據的讀寫庫,可以方便的處理對象、Map、列表的讀寫操作,以及自動化的類型轉換和數據檢查功能。
官網:http://super-csv.github.io/super-csv/index.html
github:https://github.com/super-csv/super-csv
JSON讀寫
1.Jackson
Jackson被稱為Java的標準JSON庫,號稱“Java的最佳JSON解析器”。
github:https://github.com/FasterXML/jackson
2.Gson
Gson是谷歌開源的一個Java庫,可用于將Java對象轉換為其JSON表示形式。它還可以用于將JSON字符串轉換為等效的Java對象。Gson可以處理任意Java對象,包括您沒有源代碼的現有對象。
github:https://github.com/google/gson
3.fastjson
fastjson是阿里巴巴的開源JSON解析庫,它可以解析JSON格式的字符串,支持將Java Bean序列化為JSON字符串,也可以從JSON字符串反序列化到JavaBean。
github:https://github.com/alibaba/fastjson
XML讀寫
1.dom4j
dom4j是用于處理XML的開源框架,該框架與XPath集成在一起,并完全支持DOM、SAX、JAXP和Java平臺。
github:https://github.com/dom4j/dom4j
官網:https://dom4j.github.io/
2.StAX
StAX全稱Streaming API for XML,一種全新的、基于流的Java XML解析標準類庫。
3.jaxb-api
jaxb-api用于執行XML文檔和Java對象之間的映射。
文檔:https://docs.oracle.com/javase/8/docs/api/javax/xml/bind/JAXB.html
4.XStream
XStream是一個可以輕易的將Java對象和xml文檔相互轉換的類庫。
官網:http://x-stream.github.io/
IO讀寫
1.Apache Commons IO Apache Commons IO是一個實用程序庫,可協助開發IO功能。
官網:https://commons.apache.org/proper/commons-io/
2.Okio
Okio是對java.io和java.nio的補充,使訪問、存儲和處理數據變得更加容易。
github:https://github.com/square/okio
HTTP客戶端
1.OkHttp
OkHttp是一個HTTP客戶端,使用OkHttp很容易,它的請求/響應API具有流暢的構建器和不變性。它支持同步阻塞調用和帶有回調的異步調用。
github:https://github.com/square/okhttp
官網:https://square.github.io/okhttp/
2.Apache HttpClient
Apache HttpClient提供了對基本HTTP協議的強大支持,用于構建基于HTTP的客戶端。
官網:http://hc.apache.org/index.html
github:https://github.com/apache/httpcomponents-client
Java Bean復制
1.Cglib BeanCopier
Cglib庫內的BeanCopier提供了ava Bean到Java Bean的復制功能,性能優于Spring BeanUtils。
BeanCopier beanCopier = BeanCopier.create(sourceClass, targetClass, false); beanCopier.copy(source, target, null);
2.Spring BeanUtils
Spring框架的Spring Beans庫中的BeanUtils也實現了Java Bean到Java Bean的復制。
3.Dozer
Dozer是Java Bean到Java Bean映射器,它以遞歸方式將數據從一個對象復制到另一個對象。Dozer支持簡單屬性映射、復雜類型映射、雙向映射、隱式顯式映射以及遞歸映射。Dozer不僅支持屬性名稱之間的映射,而且還可以在類型之間自動轉換。開箱即用地支持大多數轉換方案,同時也允許您通過XML或基于代碼的配置指定自定義轉換。
github:https://github.com/DozerMapper/dozer
文檔:https://dozermapper.github.io/gitbook/
Redis客戶端
1.Redission
Redis推薦的Java客戶端Redisson是一個在Redis的基礎上實現的Java駐內存數據網格(In-Memory Data Grid),它充分利用了Redis鍵值數據庫提供的一系列優勢,基于Java實用工具包中常用接口,為使用者提供了一系列具有分布式特性的常用工具類,讓使用Redis更加簡單、便捷,從而讓使用者能夠將更多精力集中到業務邏輯處理上。
github:https://github.com/redisson/redisson/
2.Jedis
Redis推薦的Java客戶端。
github:https://github.com/xetorthio/jedis
數據庫連接池
數據庫連接池提供了一套高效的連接分配、使用策略, 最終實現連接的高效管理。
1.HikariCP
快速、簡單、可靠。HikariCP是“零開銷”生產就緒的JDBC連接池。
github:https://github.com/brettwooldridge/HikariCP
2.Druid
Druid是Java語言中最好的數據庫連接池之一,Druid能夠提供強大的監控和擴展功能。
github:https://github.com/alibaba/druid/
3.Tomcat JDBC
JDBC連接池是Apache Commons DBCP連接池的替代品。
官網:http://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html
網絡編程
1.Netty
Netty是一個廣泛使用的Java網絡編程框架。
github:https://github.com/netty/netty
官網:https://netty.io/
文件上傳
1.Apache Commons FileUpload
Apache Commons FileUpload使高性能的文件上傳功能變得容易。
官網:http://commons.apache.org/proper/commons-fileupload/
發送郵件
1.Apache Commons Email
Apache commons Email旨在提供用于發送電子郵件的API,它建立在Java Mail API之上,它的目標就是簡便。
官網:http://commons.apache.org/proper/commons-email/
編碼和解碼
1.Apache Commons Codec
Apache Commons Codec提供了常見編碼器和解碼器的實現,例如Base64,Hex,Phonetic和URL。
官網:http://commons.apache.org/proper/commons-codec/
IO操作
1.Apache Commons IO
簡單、快捷的IO操作。
官網:http://commons.apache.org/proper/commons-io/index.html
對象池
1.Apache Commons Pool
提供了通用對象池。
官網:http://commons.apache.org/proper/commons-pool/
java.lang包工具類
1.Apache Commons Lang
為java.lang中的類提供額外的功能,例如StringUtils、DateUtils、RandomUtils、FastDateFormat(線程安全版本的SimpleDateFormat)。
官網:http://commons.apache.org/proper/commons-lang/index.html
集合操作
1.Apache Commons Collections
集合相關操作工具類。
官網:http://commons.apache.org/proper/commons-collections/
2.Guava
Guava是Google的一組核心Java庫,除了可以操作我們常用的集合類型之外,還可以操作新的集合類型(例如多圖和多集)和不可變的集合。
github:https://github.com/google/guava
全能型工具類
1.Guava
Guava是Google的一組核心Java庫,其中包括新的集合類型(例如多圖和多集),不可變的集合,圖形庫以及用于并發,I / O,哈希,緩存,基元,字符串等的實用程序!它廣泛用于Google的大多數Java項目中,也被許多其他公司廣泛使用。
github:https://github.com/google/guava
2.Hutool
Hutool是一個Java工具包,也只是一個工具包,它幫助我們簡化每一行代碼,減少每一個方法,讓Java語言也可以“甜甜的”。
github:https://github.com/looly/hutool
日期和時間操作
1.Joda-Time
Joda-Time提供了Java日期和時間類的質量替代。
官網:https://www.joda.org/joda-time/
單元測試
1.JUnit
官網:https://junit.org/junit5/
2.Mockito
Mockito是一個Java單元測試模擬框架。
官網:https://site.mockito.org/
3.PowerMock
PowerMock也是一個Java單元測試模擬框架,它可以模擬靜態方法、構造函數、最終類和方法、私有方法、刪除靜態初始化器等。
官網:http://powermock.github.io/
4.moco
在日常接口測試的工作中,經常需要依賴其他系統的API,但是聯調不常有,只能自己通過mock完成數據依賴。Moco是一個模擬服務器端服務的項目,可以用于測試打樁。
github:https://github.com/dreamhead/moco
安全框架
1.Apache Shiro
Apache Shiro是一個功能強大且易于使用的Java安全框架,它用于身份驗證、授權、加密和會話管理。使用Shiro易于理解的API,可以快速輕松地保護任何應用程序,從最小的移動應用程序到最大的Web和企業應用程序。
官網:http://shiro.apache.org/
日志
1.SLF4J + Logback
SLF4J是為各種loging APIs提供一個簡單統一的接口,從而使得最終用戶能夠在部署的時候配置自己希望的loging APIs實現,它是一個日志接口。
Logback是由log4j創始人設計的又一個開源日志組件,它是一個日志的實現。
SLF4J官網:http://www.slf4j.org/
Logback官網:https://logback.qos.ch/
對象池
1.Apache Commons Pool
Apache Commons Pool提供了對象池API和一系列對象池實現。
官網:https://commons.apache.org/proper/commons-pool/
基本網絡通訊
1.Apache Commons Net
Apache Commons Net庫實現了許多基本互聯網協議的客戶端。該庫的目的是提供基本協議訪問,而不是更高級別的抽象。
官網:http://commons.apache.org/proper/commons-net/index.html
作業調度框架(定時任務)
1.Quartz
Quartz是一個開源的作業調度框架,它完全由Java編寫,能夠用它來為執行一個作業而創建簡單的或復雜的調度。
官網:http://www.quartz-scheduler.org/
github:https://github.com/quartz-scheduler/quartz
2.ElasticJob
ElasticJob是一種分布式調度解決方案,解決了Quartz不支持分布式的弊端。Elastic job主要的功能有支持彈性擴容,通過Zookepper集中管理和監控job,支持失效轉移等。
github:https://github.com/apache/shardingsphere-elasticjob
配置中心
1.Nacos
Nacos是一個更易于構建云原生應用的動態服務發現、配置管理和服務管理平臺。Nacos的動態配置服務讓您能夠以中心化、外部化和動態化的方式管理所有環境的配置。動態配置消除了配置變更時重新部署應用和服務的需要。配置中心化管理讓實現無狀態服務更簡單,也讓按需彈性擴展服務更容易。
官網:https://nacos.io/
github:https://github.com/alibaba/nacos
2.Spring Cloud Config
Spring Cloud Config為分布式系統中的外部化配置提供服務器端和客戶端支持。使用Config Server,您可以在中心位置管理所有環境中應用程序的外部屬性。
文檔:https://cloud.spring.io/spring-cloud-config/reference/html/
3.Apollo
Apollo(阿波羅)是攜程框架部門研發的分布式配置中心,能夠集中化管理應用不同環境、不同集群的配置,配置修改后能夠實時推送到應用端,并且具備規范的權限、流程治理等特性,適用于微服務配置管理場景。
github:https://github.com/ctripcorp/apollo
限流
1.Guava RateLimiter
RateLimiter基于令牌桶算法,即以用戶設定的恒定速率向令牌桶內放置令牌,用戶來執行任務時,只有拿到令牌才能執行。
2.Sentinel
Sentinel是面向分布式服務架構的高可用防護組件,主要以流量為切入點,從流量控制、熔斷降級、系統自適應保護等多個維度來幫助用戶保障微服務的穩定性。
官網:https://sentinelguard.io/
github:https://github.com/alibaba/Sentinel
熔斷降級
當調用鏈路中某個資源出現不穩定,例如,表現為timeout,異常比例升高的時候,則對這個資源的調用進行限制,并讓請求快速失敗,避免影響到其它的資源,最終產生雪崩的效果。
1.Sentinel
Sentinel通過并發線程數進行限制和通過響應時間對資源進行降級兩種手段對資源調用進行限制,讓請求快速失敗,避免影響到其它的資源。
官網:https://sentinelguard.io/
github:https://github.com/alibaba/Sentinel
2.Hystrix
Hystrix 通過線程池的方式,來對資源進行了隔離。這樣做的好處是資源和資源之間做到了最徹底的隔離。缺點是除了增加了線程切換的成本,還需要預先給各個資源做線程池大小的分配。Hystrix不再處于主動開發中,并且當前處于維護模式,官方推薦使用Resilience4j替代。
github:https://github.com/Netflix/Hystrix
3.Resilience4j
Resilience4j是受Netflix Hystrix啟發的輕量級容錯庫,但專為Java 8和函數式編程而設計。輕巧,因為該庫僅使用Vavr,而Vavr沒有任何其他外部庫依賴項。
github:https://github.com/resilience4j/resilience4j
分庫分表
1.Apache ShardingSphere
Apache ShardingSphere定位為關系型數據庫中間件,旨在充分合理地在分布式的場景下利用關系型數據庫的計算和存儲能力,而并非實現一個全新的關系型數據庫。支持數據分片、讀寫分離、多數據副本、數據加密、影子庫壓測等功能。
官網:https://shardingsphere.apache.org/
github:https://github.com/apache/shardingsphere
2.Mycat
Mycat是數據庫分庫分表中間件。
官網:http://www.mycat.org.cn/
github:https://github.com/MyCATApache
序列化
1.Kryo
Kryo是用于Java的快速高效的二進制對象圖序列化框架。該項目的目標是高速,小尺寸和易于使用的API。每當需要將對象持久保存到文件,數據庫還是通過網絡時,該項目都是有用的。
github:https://github.com/EsotericSoftware/kryo
2.Hessian
Hessian是一款支持多種語言進行序列化操作的框架技術,同時在進行序列化之后產生的碼流也較小,處理數據的性能方面遠超于java內置的jdk序列化方式。
官網:http://hessian.caucho.com/
3.Protobuf
Protobuf是谷歌開源的一個靈活的、高效的用于序列化數據的協議。相比較XML和JSON格式,protobuf更小、更快、更便捷。
github:https://github.com/protocolbuffers/protobuf
官網:https://developers.google.com/protocol-buffers/
RPC框架
1.Dubbo Apache Dubbo是一款高性能、輕量級的開源Java RPC框架,它提供了三大核心能力:面向接口的遠程方法調用,智能容錯和負載均衡,以及服務自動注冊和發現。
官網:http://dubbo.apache.org/zh-cn/
github:https://github.com/apache/dubbo
2.Thrift Thrift是一個軟件框架(遠程過程調用框架),用來進行可擴展且跨語言的服務的開發。它結合了功能強大的軟件堆棧和代碼生成引擎,以構建在C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, and OCaml這些編程語言間無縫結合的、高效的服務。Thrift最初由facebook開發,07年四月開放源碼,08年5月進入apache孵化器,現在是 Apache 基金會的頂級項目。Thrift允許你定義一個簡單的定義文件中的數據類型和服務接口,以作為輸入文件,編譯器生成代碼用來方便地生成RPC客戶端和服務器通信的無縫跨編程語言。
官網:http://thrift.apache.org/
3.gRPC gRPC是一個現代的、開源的、高性能的遠程過程調用(RPC)框架,可以在任何地方運行。gRPC使客戶機和服務器應用程序能夠透明地通信,并簡化了連接系統的構建。目前提供C、Java和Go語言版本,分別是:grpc, grpc-java, grpc-go. 其中C版本支持C, C++, Node.js, Python, Ruby, Objective-C, PHP和C#支持。
官網:https://www.grpc.io/
github:https://github.com/grpc/grpc
到此,關于“Java開發人員的常用類庫有哪些”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。