电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

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

瀏覽:45日期: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.hdgsjgj.cn/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
相關文章:
主站蜘蛛池模板: 天一线缆邯郸有限公司_煤矿用电缆厂家_矿用光缆厂家_矿用控制电缆_矿用通信电缆-天一线缆邯郸有限公司 | 开锐教育-学历提升-职称评定-职业资格培训-积分入户 | 暖气片十大品牌厂家_铜铝复合暖气片厂家_暖气片什么牌子好_欣鑫达散热器 | 酶联免疫分析仪-多管旋涡混合仪|混合器-莱普特科学仪器(北京)有限公司 | 精益专家 - 设备管理软件|HSE管理系统|设备管理系统|EHS安全管理系统 | 比亚迪叉车-比亚迪电动叉车堆垛车托盘车仓储叉车价格多少钱报价 磁力去毛刺机_去毛刺磁力抛光机_磁力光饰机_磁力滚抛机_精密金属零件去毛刺机厂家-冠古科技 | 除甲醛公司-甲醛检测治理-杭州创绿家环保科技有限公司-室内空气净化十大品牌 | 一点车讯-汽车网站,每天一点最新车讯!| 珠海冷却塔降噪维修_冷却塔改造报价_凉水塔风机维修厂家- 广东康明节能空调有限公司 | 曙光腾达官网-天津脚手架租赁-木板架出租-移动门式脚手架租赁「免费搭设」 | 直流大电流电源,燃料电池检漏设备-上海政飞 | 细砂提取机,隔膜板框泥浆污泥压滤机,螺旋洗砂机设备,轮式洗砂机械,机制砂,圆锥颚式反击式破碎机,振动筛,滚筒筛,喂料机- 上海重睿环保设备有限公司 | 深圳快餐店设计-餐饮设计公司-餐饮空间品牌全案设计-深圳市勤蜂装饰工程 | 温州在线网| 耳模扫描仪-定制耳机设计软件-DLP打印机-asiga打印机-fitshape「飞特西普」 | C形臂_动态平板DR_动态平板胃肠机生产厂家制造商-普爱医疗 | 青岛空压机,青岛空压机维修/保养,青岛空压机销售/出租公司,青岛空压机厂家电话 | 彼得逊采泥器-定深式采泥器-电动土壤采样器-土壤样品风干机-常州索奥仪器制造有限公司 | 硅胶布|电磁炉垫片|特氟龙胶带-江苏浩天复合材料有限公司 | 工业胀紧套_万向节联轴器_链条-规格齐全-型号选购-非标订做-厂家批发价格-上海乙谛精密机械有限公司 | 江苏南京多语种翻译-专业翻译公司报价-正规商务翻译机构-南京华彦翻译服务有限公司 | 品牌策划-品牌设计-济南之式传媒广告有限公司官网-提供品牌整合丨影视创意丨公关活动丨数字营销丨自媒体运营丨数字营销 | 国产离子色谱仪,红外分光测油仪,自动烟尘烟气测试仪-青岛埃仑通用科技有限公司 | 双工位钻铣攻牙机-转换工作台钻攻中心-钻铣攻牙机一体机-浙江利硕自动化设备有限公司 | 蓝牙音频分析仪-多功能-四通道-八通道音频分析仪-东莞市奥普新音频技术有限公司 | 不锈钢丸厂家,铝丸,铸钢丸-淄博智源铸造材料有限公司 | 单机除尘器 骨架-脉冲除尘器设备生产厂家-润天环保设备 | 欧景装饰设计工程有限公司-无锡欧景装饰官网| 细砂提取机,隔膜板框泥浆污泥压滤机,螺旋洗砂机设备,轮式洗砂机械,机制砂,圆锥颚式反击式破碎机,振动筛,滚筒筛,喂料机- 上海重睿环保设备有限公司 | 无菌检查集菌仪,微生物限度仪器-苏州长留仪器百科 | 网优资讯-为循环资源、大宗商品、工业服务提供资讯与行情分析的数据服务平台 | 逗网红-抖音网红-快手网红-各大平台网红物品导航 | 披萨石_披萨盘_电器家电隔热绵加工定制_佛山市南海区西樵南方综合保温材料厂 | 电磁流量计_智能防腐防爆管道式计量表-金湖凯铭仪表有限公司 | 水厂自动化|污水处理中控系统|水利信息化|智慧水务|智慧农业-山东德艾自动化科技有限公司 | 龙门加工中心-数控龙门加工中心厂家价格-山东海特数控机床有限公司_龙门加工中心-数控龙门加工中心厂家价格-山东海特数控机床有限公司 | 青岛球场围网,青岛车间隔离网,青岛机器人围栏,青岛水源地围网,青岛围网,青岛隔离栅-青岛晟腾金属制品有限公司 | 厦门网站建设_厦门网站设计_小程序开发_网站制作公司【麦格科技】 | 5L旋转蒸发器-20L-50L旋转蒸发器-上海越众仪器设备有限公司 | 东亚液氮罐-液氮生物容器-乐山市东亚机电工贸有限公司 | 深圳网站建设-高端企业网站开发-定制网页设计制作公司 |