广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Java常用工具类库——Hutool的使用简介
  • 952
分享到

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

2024-04-02 19:04:59 952人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录前言HuTool 中的一些常用工具类日期相关 api随机工具图片工具彩色转换成黑白添加文字水印加密解密工具布隆过滤器邮件工具html 工具HtmlUtil.cleanHtmlTa

前言

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] 之内(包含边界值)的一个浮点数字
);

加密解密工具

加密一般分为三种:

  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", "测试", "<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\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);

jsON 工具

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

写在最后

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

以上就是Java常用工具类库——Hutool的使用简介的详细内容,更多关于Java 工具类库Hutool的使用的资料请关注编程网其它相关文章!

--结束END--

本文标题: Java常用工具类库——Hutool的使用简介

本文链接: https://www.lsjlt.com/news/123361.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java常用工具类库——Hutool的使用简介
    目录前言HuTool 中的一些常用工具类日期相关 API随机工具图片工具彩色转换成黑白添加文字水印加密解密工具布隆过滤器邮件工具HTML 工具HtmlUtil.cleanHtmlTa...
    99+
    2022-11-12
  • Hutool Java工具类库_ExcelUtil的使用
    目录Hutool Java工具类库_ExcelUtil依赖ExcelUtilExcelReaderExcelWriterjava解析Excel使用hutool工具类Hutool Ja...
    99+
    2022-11-12
  • 怎么使用Java工具类库hutool
    本篇内容介绍了“怎么使用Java工具类库hutool”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!简介Hutool是Hu + tool的自造...
    99+
    2023-06-16
  • Hutool Java工具类库_ExcelUtil怎么使用
    这篇文章主要介绍“Hutool Java工具类库_ExcelUtil怎么使用”,在日常操作中,相信很多人在Hutool Java工具类库_ExcelUtil怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作...
    99+
    2023-06-21
  • 如何在Java中使用Hutool工具类库
    这篇文章将为大家详细讲解有关如何在Java中使用Hutool工具类库,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。HuTool 中的一些常用工具类我们引入这个工具类很简单,直接在 Mavan...
    99+
    2023-06-14
  • hutool工具类怎么使用
    这篇文章主要介绍“hutool工具类怎么使用”,在日常操作中,相信很多人在hutool工具类怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”hutool工具类怎么使用”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-21
  • Hutool工具类使用详解
    当今,Java开发者需要处理各种各样的任务,这包括但不限于:日期操作、加密算法、文件操作、Excel数据处理、网络请求等等。而在处理这些任务时,为了提高效率、降低开发难度和复杂度,我们需要借助一些工具类库。Hutool是一个Java工具类库...
    99+
    2023-08-25
    java 开发语言
  • Java全能工具类之Hutool怎么使用
    本篇内容主要讲解“Java全能工具类之Hutool怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java全能工具类之Hutool怎么使用”吧!Hutool简介Hutool是一个Java工...
    99+
    2023-07-05
  • JAVA宝藏工具hutool的使用
    目录字符串、时间、金额转换 日期1 日期2 有限状态自动机-敏感词搜索 加解密 文件 雪花算法-ID生成 网络相关 URL相关 大家在系统研发过程中,总是会遇到需要自己自定义工具类的...
    99+
    2022-11-12
  • Java工具包Hutool的使用分析
    这篇文章给大家介绍Java工具包Hutool的使用分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Hutool 。它是一个功能丰富的 Java 工具包。它帮助我们实现了常用的工具方法,从而减少代码的体积,提高开发效率...
    99+
    2023-06-05
  • hutool 工具类基本使用教程
    在之前没有接触到这个工具类的时候,感觉自己好像根本就不知道这个的存在,再次之前没有一个完善的知识体系,但是在发现这个工具类之后,才真的发现这个工具类是真的好用,下面我就简单的介绍一下...
    99+
    2022-11-12
  • Java全能工具类之Hutool的用法详解
    目录Hutool简介Hutool特性字符串工具类日期时间工具类集合工具类数字工具类加密解密工具类文件操作工具类Excel数据处理工具类Http请求工具类当今,Java开发者需要处理各...
    99+
    2023-05-13
    Java Hutool工具类 Java Hutool使用 Java Hutool
  • Hutool开发MapUtil工具类使用示例
    目录概述行列互转键值互换sort排序操作join连接操作过滤转换操作获取get总结概述 Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工...
    99+
    2022-11-13
  • Java中操作Xml使用备忘[ Hutool工具类XmlUtil、XStream ]
    List item 文章目录 Java中操作Xml使用备忘[ Hutool工具类XmlUtil、XStream ]1. Hutool中XmlUtil的使用简介2. Hutool中XmlUti...
    99+
    2023-09-01
    java xml 开发语言
  • 如何使用hutool做本地缓存的工具类
    目录用hutool做本地缓存的工具类gradle中引入hutool依赖本地缓存工具类关于hutools工具包的常用方法HttpUtil类用hutool做本地缓存的工具类 gradle...
    99+
    2022-11-13
    使用hutool工具类 本地缓存工具类 工具类
  • GoldenGate的Logdump工具使用简介
    Logdump工具是GoldenGate提供的一个用于查询、分析、过滤、查看和保存存储在trail文件或extract文件中的数据的工具。1、启动Logdump工具[oracle@rhel6 ~]...
    99+
    2022-10-18
  • MongoDB mongoexport工具的使用简介
    目录01  基本介绍02  常用参数03  命令04  经验值05  反向导入01  基本介绍   ...
    99+
    2022-11-11
  • MySQL的工作流程及常用工具简介——MySQL数据库软件的使用
     一. MySQL的工作流程 (1)操作系统用户启动MySQL服务。 (2)MySQL服务启动期间,首先将配置文件中的参数信息读入服务器内存。 (3)根据MySQL配置文件的参数信息或者编译MySQL时参数的默认值生成一个服务实例进程I...
    99+
    2018-11-17
    MySQL的工作流程及常用工具简介——MySQL数据库软件的使用
  • Java优秀类库Hutool使用示例
    目录介绍如何使用总结介绍   日常的业务开发,我们会重复编写一些代码:日期和字符串相互转换、发送Http请求调用接口、拷贝对象等。所以为了避免重复编写,项目中会封...
    99+
    2023-02-21
    Java Hutool Java Hutool工具包
  • Java优秀类库Hutool如何使用
    这篇“Java优秀类库Hutool如何使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java优秀类库Hutool如何使用...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作