日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

2018年不能错过的 14 个 Java 库

發布時間:2023/12/3 java 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2018年不能错过的 14 个 Java 库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉載自?2018年不能錯過的 14 個 Java 庫

下面是整理給你的 2018 年不應該錯過的 14 個 Java 庫包清單,多多少少大家應該都接觸過一些,如果還沒聽過那就OUT了。


Guice


Guice是一個Java 6以上支持依賴注入框架。由谷歌提供。

OkHttp


HTTP是現代網絡的通訊方式。決定我們如何交換數據和媒體。 如果有效地執行HTTP通訊會使您的內容加載更快,并且節省帶寬。OkHttp是一個HTTP客戶端,高效是其特點:


(1)在HTTP / 2情況下支持對同一主機的所有請求能夠共享同一個socket。

(2)通過連接池降低請求延遲(如果HTTP / 2不可用)。

(3)透明GZIP壓縮下載大小。

(4)對響應進行?緩存?,可以完全避免重復請求的網絡。



Retrofit


用于Android的類型安全的HTTP客戶端,能夠將HTTP API轉為Java接口。

Retrofit會產生上面GitHubService的實現類:


JDeferred


Java的Deferred/Promise庫類似于JQuery:

Deferred對象和Promise

Promise回調: .then(…), .done(…), .fail(…), .progress(…), .always(…)

多個promises - .when(p1, p2, p3, …).then(…)

Callable 和 Runnable - wrappers.when(new Runnable() {…})

使用Executor Service

Java范型支持: Deferred<Integer, Exception, Doubledeferred;, deferred.resolve(10);, deferred.reject(new Exception());,deferred.notify(0.80);,

Android支持

Java 8 Lambda友好


RxJava


RxJava - JVM的反應式擴展Reactive Extension -使用可觀察序列來組合異步和基于事件的程序。


它擴展了觀察者模式以支持數據/事件序列,并添加操作符,允許您以聲明方式組合序列,同時抽象出對低級線程,同步,線程安全和?并發?數據結構等問題的關注。


RxJava的一個常見用例是在后臺線程上運行一些計算,比如網絡請求,并在UI線程上顯示結果(或錯誤):


MBassador


MBassador是一種輕量級,高性能的事件總線,實現發布訂閱模式。它為易于使用而設計,功能豐富且可擴展,同時保持資源效率和高性能。


MBassador的高性能核心是一個專門的數據結構,提供非阻塞讀取器,并最大限度地減少寫爭奪的鎖爭用,使?并發?/寫訪問的性能降低最小。


注釋驅動

遞送一切,尊重類型層次結構

同步和異步消息傳遞

可配置的引用類型

消息過濾

包裝消息

處理程序優先級

自定義錯誤處理

可擴展性


Lombok


使用注釋來減少Java中的重復代碼,例如getters setters,not null檢查,生成Builder等。

val - 不會產生麻煩的final局部變量。


@NonNull - 或者:我怎么學會停止擔心和喜歡上了NullPointerException。

@Cleanup - 自動資源管理:安全地調用您的close()方法,沒有麻煩。

@Getter / @Setter - 不要再寫public int getFoo(){return foo;}。

@ToString - 無需啟動調試器來查看您的字段:只需讓Lombok為您生成一個toString!

@EqualsAndHashCode - 從對象的字段中生成hashCode和equals實現。

@NoArgsConstructor,@RequiredArgsConstructor和@AllArgsConstructor - 按順序構造的構造函數:生成不帶參數,每個final /非空字段有一個參數或每個字段有一個參數的構造函數。

@Data - 現所有字段上都有@ToString,@EqualsAndHashCode,@Getter的快捷方式,所有非final字段的@Setter和@RequiredArgsConstructor!

@Value - 編寫不可變的類非常容易。

@Builder - 沒有麻煩的花哨的API對象創建!

@SneakyThrows - 大膽地引發檢查異常,在沒有觸發他們之前!

@同步 - 同步:不要暴露你的鎖。

@Getter(lazy = true)懶惰是一種美德!


SLF4j


Simple Logging Facade for Java (SLF4J)用作各種日志框架(例如java.util.logging,logback,log4j)的簡單封裝管理抽象,允許最終用戶在部署時插入所需的日志框架。


簡而言之,嵌入式庫或組件應該考慮SLF4J的作為日志記錄需求,因為該庫不會強加最終用戶選擇哪個日志框架。 另一方面,對于獨立應用程序使用SLF4J并不一定有意義。獨立應用程序可以直接調用他們選擇的日志框架。


JUnitParams


與標準JUnit的主要區別:

更明確 - params是在測試方法參數中,而不是類字段

更少的代碼 - 你不需要一個構造函數來設置參數

您可以在一個類中混合使用非參數方法的參數

參數可以作為CSV字符串或參數提供程序類傳遞

參數提供程序類可以具有任意多個提供所需方法的參數,以便可以對不同的案例進行分組

你可以有一個提供參數的測試方法(不再有外部類或靜態)

您可以在IDE中查看實際的參數值(在JUnit的Parametrised中,它只是連續的參數數量):



Mockito

單元測試框架:


Jukito

集合 JUnit, Guice, 和 Mockito優點:

通過自動化,大大減少了樣板,導致更容易閱讀測試

引入對測試對象中的API更改更有彈性的測試

用@Inject注釋的字段會自動注入

使得將對象連接在一起變得容易,因此您可以將單元測試縮放為部分集成測試


Awaitility


Awaitility是一種用于同步異步操作的小型Java DSL。


測試異步系統很困難。 它不僅需要處理線程,超時和?并發?問題,但測試代碼的意圖可能被所有這些細節模糊。 Awaitility是一種DSL,允許您以簡潔易讀的方式表達異步系統的期望。


Spock

為企業準備的測試和規范框架。



WireMock


模擬HTTP服務的工具:

HTTP響應stubbing存根,匹配HTTP的URL、頭部和正文內容

請求驗證

在單元測試中運行,作為獨立進程或作為WAR應用程序運行

可通過流暢的Java API,JSON文件和通過HTTP的JSON進行配置

記錄/回放存根

故障注入

每次請求的條件代理

瀏覽器代理請求檢查和替換

狀態行為模擬

可配置的響應延遲



總結

以上是生活随笔為你收集整理的2018年不能错过的 14 个 Java 库的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。