首頁/ 汽車/ 正文

不搞花裡胡哨的,4個非常實用的Java專案,快用起來

大家好,老讀者都知道了,開源專案我已經推薦過很多了,常規專案想必兄弟們都已經看膩了,今天給大夥推薦幾個非常實用的專案,如果對你有幫助的話還請點贊轉發支援一下,

四個專案的程式碼我都整理好放在文末了,需要的兄弟可以自取

分別是:

Caffeine

:效能超強的本地快取解決方案。

JADX

: 一款強大的反編譯工具。

Debezium

:一個用於追蹤資料更改(change data capture ,CDC)的開源專案。你可以透過 Debezium 輕鬆實現資料同步,將一個數據源中的資料同步到其他資料來源,比如將 MySQL 中的資料同步到 ES 中。

JNDI-Injection-Exploit

:一個開箱即用的 JNDI 注入工具。

Caffeine:本地快取之王

Caffeine 是一款強大的本地快取解決方案,效能非常 。

有多牛呢?看下 Caffeine 和其他可以提供本地快取的工具的效能對比吧!

不搞花裡胡哨的,4個非常實用的Java專案,快用起來

Caffeine 和 Guava 一樣,透過 API 的方式即可使用快取。

LoadingCache graphs = Caffeine。newBuilder() 。maximumSize(10_000) 。expireAfterWrite(Duration。ofMinutes(5)) 。refreshAfterWrite(Duration。ofMinutes(1)) 。build(key -> createExpensiveGraph(key));

不過,相比於 Guava 提供的快取功能來說 Caffeine 在各個方面都要更加優秀。像 Redisson、Cassandra、Hbase、Neo4j、Druid 等知名開源專案都用到了 Caffeine。

JADX:強大的反編譯工具

jadx 是一款功能強大的反編譯工具,使用起來簡單方便,不光提供了命令列程式,還提供了 GUI 程式。一般情況下,我們直接使用 GUI 程式就可以了。

jadx 支援 Windows、Linux、 macOS,能夠幫我們開啟

。apk

。dex

。jar

。zip

等格式的檔案

就比如說我們需要反編譯一個 jar 包檢視其原始碼的話,直接將 jar 包拖入到 jadx 中就可以了。效果如下:

不搞花裡胡哨的,4個非常實用的Java專案,快用起來

再比如說我們想看看某個 apk 的原始碼,我們拿到 apk 之後直接拖入進 jadx 中就可以了。效果如下:

不搞花裡胡哨的,4個非常實用的Java專案,快用起來

除此之外,這個工具具備下面這些特性:

自帶強大的搜尋功能,支援多種匹配模式;

支援檢視類,變數或者方法使用情況;

支援在原始碼中添加註釋

支援反混淆

……

這個工具使用起來還挺簡單的,立個 flag :下週出一篇 JADX 使用介紹的文章。

Debezium:追蹤資料更改

Debezium 是一個用於追蹤資料更改(change data capture ,CDC)的開源專案,基於 Java 語言,利用 Kafka 和 Kafka Connect 實現永續性、可靠性和容錯性,工作原理類似大家比較熟悉的 Canal、Maxwell,透過資料庫日誌來獲取變更。

CDC(Change Data Capture)是一種軟體設計模式,用於確定和跟蹤已變更的資料,以便可以對更改後的資料採取措施,

Debezium 已經支援 MySQL、PostgreSQL、Oracle、Cassandra、MongoDB、SQL Server 等資料庫。

你可以使用 Debezium 來監控你的資料庫,每一個提交的行級別(row-level)的更改都會被捕獲。因此,你可以透過 Debezium 輕鬆實現資料同步,將一個數據源中的資料同步到其他資料來源,比如將 MySQL 中的資料同步到 ES 中。

下圖是基於 Debezium 追蹤資料更改常見的一種架構:

不搞花裡胡哨的,4個非常實用的Java專案,快用起來

相對於 ETL 資料同步方案來說,Debezium 這種方式更加靈活。

Debezium 的官方文件中還介紹了很多其他有價值的使用場景,感興趣的小夥伴可以自己去看看。

不搞花裡胡哨的,4個非常實用的Java專案,快用起來

相關文章推薦:

使用 Apache Hudi 和 Debezium 構建健壯的 CDC 管道

Debezium-Flink-Hudi:實時流式 CDC

JNDI-Injection-Exploit:JNDI 注入工具

JNDI-Injection-Exploit

這個專案是一個開箱即用的 JNDI 注入工具,用於生成 JNDI 連結並啟動後端相關服務,可用於 Fastjson、Jackson 等相關漏洞的驗證。

JNDI 是什麼呢?

簡單來說,

JNDI (Java Naming and Directory Interface)

是一組應用程式介面,類似於一個索引中心,它允許客戶端透過

jndiName

來定位使用者、網路、機器、物件和服務等各種資源。

//指定需要查詢name的名稱String jndiName= “jndiName”;//初始化預設環境Context context = new InitialContext();//查詢該name對應的資源部context。lookup(jndiName);

當 jndiName 變數可控時,如果獲取到的資源是遠端

class

檔案的話,就可能會觸發執行惡意程式碼,這也就是我們常說的 JNDI 注入。

不搞花裡胡哨的,4個非常實用的Java專案,快用起來

JNDI 這傢伙帶來了很多重大的漏洞,就比如前段時間技術圈刷屏的 Log4j2 重大漏洞 就是這玩意引起的。

end

好了,就先寫到這裡吧,

點贊+轉發+私信【0830】四個數字即可下載相關程式碼和部署文件哦

相關文章

頂部