发信息做推广,我选黔优网

发布产品信息
微信公众号

分享Java常用工具类库Hutool及相关API使用方法

我要举报 来源:黔优网作者:小优 责编:小优 时间:2024-12-18 14:02:02 浏览量:13
导读:本文深度解析分享Java常用工具类库Hutool及相关API使用方法的核心底层逻辑要点与实践方法,涵盖关键观点信息和常见问题解决思路分析,为您提供全面的学习指导,一起来看看吧。

下面我将和大家简单地介绍一下 Java 中一个常用工具类库——Hutool,以及相关 API 的使用方法。本篇文章供大家参考,希望对大家的学习能够有所帮助。

前言

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端口,可选,默认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", "测试", "<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>
		dfdsfdsfdsf
</div><div>BBBB</div>";

// 结果为:pre
		dfdsfdsfdsf
BBBB
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);

JSON 工具

由于有开源并且一直在维护的 Fastjson 工具在先,所以这里就不再细说 Hutool 中的 JSON 工具,使用方法基本类似。

写在最后

上面只是简单的介绍了 Hutool 的典型常用工具,实际上 Hutool 基本覆盖了我们日常普通开发场景涉及的大部分工具类,有兴趣的可以自行查阅文档,介绍的很全,如果使用中遇到了 BUG,也欢迎及时向作者反馈哦? 。

以上就是Java常用工具类库——Hutool的使用简介的详细内容,想要了解更多关于 Java 其他类库的使用方法的内容,请搜索W3Cschool其它相关文章,也希望大家能够对我们多多支持!

 
  • 下一篇: 全面解析PayPal Holdings, Inc:数字支付领域的领跑者
  • 上一篇: 如何使用PayPal购买游戏点卡:全面指南
 
没用 0举报 收藏 0评论 0
免责声明:
以上展示内容来源于用户自主上传及公开网络信息收集整理,版权归属原作者所有,平台不承担内容准确性责任,版权争议与本站无关。本文涉及见解与观点不代表黔优网官方立场,仅供技术交流参考,黔优网为纯技术资讯交流平台,不参与任何商业服务及交易行为,所有企业信息均经基础资质审核后展示。本文标题:分享Java常用工具类库Hutool及相关API使用方法,本文链接:https://www.qianu.com/n/934593.html,欢迎转载,转载时请说明出处。若您发现本文涉及版权争议或违法违规内容,请您立即通过点此【投诉举报】并提供有效线索,也可以通过邮件(邮箱号:kefu@qianu.com)联系我们及时修正或删除。
 
 

 

 
推荐图文资讯