Java常用工具类库——Hutool的使用简介

目录前言HuTool 中的一些常用工具类日期相关 API随机工具图片工具彩色转换成黑白添加文字水印加密解密工具布隆过滤器邮件工具HTML 工具HtmlUtil.cleanHtmlTagHtmlUtil.removeHtmlTag过滤 HTML 文本,防止 XSS 攻击JSON 工具写在最后

前言

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\">\r\n\t\tdfdsfdsfdsf\r\n</div><div class=\"test_div\">BBBB</div>";// 结果为:pre\r\n\t\tdfdsfdsfdsf\r\nBBBBString result = HtmlUtil.cleanHtmlTag(str);

HtmlUtil.removeHtmlTag

清除指定HTML标签和被标签包围的内容

String str = "pre<img src=\"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常用工具类库——Hutool的使用简介

相关文章:

你感兴趣的文章:

标签云: