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