91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在Java中使用Hutool工具類庫

發布時間:2021-04-12 15:26:55 來源:億速云 閱讀:465 作者:Leah 欄目:開發技術

這篇文章將為大家詳細講解有關如何在Java中使用Hutool工具類庫,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

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] 之內(包含邊界值)的一個浮點數字
);

加密解密工具

加密一般分為三種:

  1. 對稱加密(symmetric),例如:AES、DES等

  2. 非對稱加密(asymmetric),例如:RSA、DSA等

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

發送郵件:

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

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

//帶HTML格式的郵件
MailUtil.send("hutool@foxmail.com", "測試", "<h2>郵件來自Hutool測試</h2>", 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\">\r\n\t\tdfdsfdsfdsf\r\n</div><div class=\"test_div\">BBBB</div>";

// 結果為:pre\r\n\t\tdfdsfdsfdsf\r\nBBBB
String result = HtmlUtil.cleanHtmlTag(str);
HtmlUtil.removeHtmlTag

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

String str = "pre<img src=\"xxx/dfdsfds/test.jpg\">";

// 結果為:pre
String result = HtmlUtil.removeHtmlTag(str, "img");
過濾 HTML 文本,防止 XSS 攻擊

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

String html = "<alert></alert>";

// 結果為:""
String filter = HtmlUtil.filter(html);

關于如何在Java中使用Hutool工具類庫就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

衡山县| 邮箱| 噶尔县| 蒙城县| 阳原县| 邵武市| 友谊县| 陇西县| 台湾省| 大理市| 赤壁市| 青浦区| 阆中市| 博罗县| 阿克苏市| 成安县| 伊川县| 黄山市| 宁晋县| 伊宁县| 濉溪县| 东辽县| 自贡市| 扶余县| 平果县| 连云港市| 怀远县| 富民县| 鹿泉市| 登封市| 台山市| 凤凰县| 遂宁市| 石楼县| 桦川县| 尚志市| 抚顺市| 安义县| 镶黄旗| 册亨县| 梁河县|