您的位置:首頁技術文章
文章詳情頁

Java常用工具類庫——Hutool的使用簡介

瀏覽:18日期:2022-08-14 15:14:36
前言

Hutool 是一個小而全的 Java 工具類庫,通過靜態方法封裝,降低相關 API 的學習成本,提高工作效率,使 Java 擁有函數式語言般的優雅,讓 Java 語言也可以“甜甜的”。Hutool 中的工具方法來自于每個用戶的精雕細琢,它涵蓋了 Java 開發底層代碼中的方方面面,它既是大型項目開發中解決小問題的利器,也是小型項目中的效率擔當;Hutool 是項目中“util”包友好的替代,它節省了開發人員對項目中公用類和公用工具方法的封裝時間,使開發專注于業務,同時可以最大限度的避免封裝不完善帶來的 bug。

上述是 Hutool 的官方介紹,它的官方文檔已經介紹的很詳細了,因此下面我只簡單介紹幾個常用的 API 操作,更多的功能我們可以詳細閱讀文檔。

官方文檔地址:https://www.hutool.cn/docs/#/

HuTool 中的一些常用工具類

我們引入這個工具類很簡單,直接在 Mavan 項目中引入 dependency 即可,如果是初學者,去 Maven Repository 下載 jar 包也可以使用。

<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.3.5</version></dependency>

通過 Hutool,可以減少代碼搜索成本,避免網絡上參差不齊的代碼出現導致的bug。

日期相關 API

我們知道,Java 中關于日期的 API 使用一直很繁瑣,從 Date 到 Calendar,對開發者都不是那么友好,還容易出 BUG,那么 Hutool 首先就對日期下手了,提供了針對 JDK 中 Date 和 Calendar 對象的封裝。

比如要對當前的 Date 日期進行格式化,一般使用 SimpleDateFormat(yyyy-MM-dd HH:mm:ss) 這種方式,但 SimpleDateFormat 這個類是線程不安全的,而 Hutool 提供了一個 FastDateFormat 類,提供線程安全的針對 Date 對象的格式化和日期字符串解析支持。此對象在實際使用中并不需要感知,相關操作已經封裝在 DateUtil 和 DateTime 的相關方法中。

還有其它的日期 API 如下:

DateUtil 針對日期時間操作提供一系列靜態方法 DateTim 提供類似于 Joda-Time 中日期時間對象的封裝,繼承自 Date 類,并提供更加豐富的對象方法。 DateBetween 計算兩個時間間隔的類,除了通過構造新對象使用外,相關操作也已封裝在 DateUtil 和 DateTime 的相關方法中。 TimeInterval 一個簡單的計時器類,常用于計算某段代碼的執行時間,提供包括毫秒、秒、分、時、天、周等各種單位的花費時長計算,對象的靜態構造已封裝在 DateUtil 中。 DatePattern 提供常用的日期格式化模式,包括 String 類型和 FastDateFormat 兩種類型。 隨機工具

隨機工具應該是我們開發中用的較多的類庫,Hutool 也封裝了常用的 API。

RandomUtil.randomInt 獲得指定范圍內的隨機數 RandomUtil.randomBytes 隨機 bytes RandomUtil.randomEl 隨機獲得列表中的元素 RandomUtil.randomEleSet 隨機獲得列表中的一定量的不重復元素,返回 Set RandomUtil.randomString 獲得一個隨機的字符串(只包含數字和字符) RandomUtil.randomNumbers 獲得一個只包含數字的字符串 RandomUtil.randomUUID 隨機 UUID RandomUtil.weightRandom 權重隨機生成器,傳入帶權重的對象,然后根據權重隨機獲取對象 圖片工具

針對 awt 中圖片處理進行封裝,這些封裝包括:縮放、裁剪、轉為黑白、加水印等操作。

彩色轉換成黑白

//黑白轉換ImgUtil.gray(FileUtil.file('d:/logo.png'), FileUtil.file('d:/result.png'));添加文字水印

ImgUtil.pressText(// FileUtil.file('e:/pic/face.jpg'), // FileUtil.file('e:/pic/test2_result.png'), // '版權所有', Color.WHITE, //文字 new Font('黑體', Font.BOLD, 100), //字體 0, //x坐標修正值。 默認在中間,偏移量相對于中間偏移 0, //y坐標修正值。 默認在中間,偏移量相對于中間偏移 0.8f//透明度:alpha 必須是范圍 [0.0, 1.0] 之內(包含邊界值)的一個浮點數字);加密解密工具

加密一般分為三種:

對稱加密(symmetric),例如:AES、DES等 非對稱加密(asymmetric),例如:RSA、DSA等 摘要加密(digest),例如:MD5、SHA-1、SHA-256、HMAC等

Hutool 對上述加密都提供了對應的封裝方法。

布隆過濾器

布隆過濾器可以用于檢索一個元素是否在一個集合中。它的優點是空間效率和查詢時間都遠遠超過一般的算法,缺點是有一定的誤識別率和刪除困難。一般用于解決 NoSQL 的緩存穿透問題。

// 初始化BitMapBloomFilter filter = new BitMapBloomFilter(10);filter.add('123');filter.add('abc');filter.add('ddd');// 查找filter.contains('abc')郵件工具

在 Java中 發送郵件主要品依靠 javax.mail 包,原生 API 使用比較繁瑣,Hutool 在支持郵件發送的基礎上,仍然依賴于 javax.mail 包。

<dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.7</version></dependency>

郵件服務器的完整配置:

# 郵件服務器的SMTP地址,可選,默認為smtp.<發件人郵箱后綴>host = smtp.yeah.net# 郵件服務器的SMTP端口,可選,默認25port = 25# 發件人(必須正確,否則發送失敗)from = hutool@yeah.net# 用戶名,默認為發件人郵箱前綴user = hutool# 密碼(注意,某些郵箱需要為SMTP服務單獨設置授權碼,詳情查看相關幫助)pass = q1w2e3

發送郵件:

發送普通文本郵件,最后一個參數可選是否添加多個附件:

//普通文本MailUtil.send('hutool@foxmail.com', '測試', '郵件來自Hutool測試', false); 發送 HTML 格式的郵件并附帶附件,最后一個參數可選是否添加多個附件:

//帶HTML格式的郵件MailUtil.send('hutool@foxmail.com', '測試', '<h1>郵件來自Hutool測試</h1>', true, FileUtil.file('d:/aaa.xml')); 群發郵件,可選 HTML 或普通文本,可選多個附件:

//群發ArrayList<String> tos = CollUtil.newArrayList( 'person1@bbb.com', 'person2@bbb.com', 'person3@bbb.com', 'person4@bbb.com');MailUtil.send(tos, '測試', '郵件來自Hutool群發測試', false);HTML 工具

比如清除富文本編輯器中的 HTML 文本的指定標簽,或者只保留普通文本。

HtmlUtil.cleanHtmlTag

清除所有 HTM L標簽,但是保留標簽內的內容。

String str = 'pre<div class='test_div'>rnttdfdsfdsfdsfrn</div><div class='test_div'>BBBB</div>';// 結果為:prernttdfdsfdsfdsfrnBBBBString result = HtmlUtil.cleanHtmlTag(str);HtmlUtil.removeHtmlTag

清除指定HTML標簽和被標簽包圍的內容

String str = 'pre<img src='http://www.wxshucaidpc.com/bcjs/xxx/dfdsfds/test.jpg'>';// 結果為:preString result = HtmlUtil.removeHtmlTag(str, 'img');過濾 HTML 文本,防止 XSS 攻擊

這個作用就不必多說,防止用戶在輸入文本中寫入 HTML 標簽對后臺造成攻擊。

String html = '<alert></alert>';// 結果為:''String filter = HtmlUtil.filter(html);JSON 工具

由于有開源并且一直在維護的 Fastjson 工具在先,所以這里就不再細說 Hutool 中的 JSON 工具,使用方法基本類似。

寫在最后

上面只是簡單的介紹了 Hutool 的典型常用工具,實際上 Hutool 基本覆蓋了我們日常普通開發場景涉及的大部分工具類,有興趣的可以自行查閱文檔,介紹的很全,如果使用中遇到了 BUG,也歡迎及時向作者反饋哦🙋 。

以上就是Java常用工具類庫——Hutool的使用簡介的詳細內容,更多關于Java 工具類庫Hutool的使用的資料請關注好吧啦網其它相關文章!

標簽: Java
相關文章:
国产综合久久一区二区三区