Hutool 的学习
1、 Hutool 介绍
Hutool 是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。
Hutool 中的工具方法来自每个用户的精雕细琢,它涵盖了Java开发底层代码中的方方面面,它既是大型项目开发中解决小问题的利器,也是小型项目中的效率担当;
Hutool 是项目中“util”包友好的替代,它节省了开发人员对项目中公用类和公用工具方法的封装时间,使开发专注于业务,同时可以最大限度的避免封装不完善带来的bug。
2、 Hutool 名称的由来
Hutool = Hu + tool,是原公司项目底层代码剥离后的开源库,“Hu”是公司名称的表示,tool表示工具。Hutool谐音“糊涂”,一方面简洁易懂,一方面寓意“难得糊涂”。
3、 Hutool 如何改变我们的coding方式
Hutool的目标是使用一个工具方法代替一段复杂代码,从而最大限度的避免“复制粘贴”代码的问题,彻底改变我们写代码的方式。
以计算MD5为例:
- 【以前】打开搜索引擎 -> 搜“Java MD5加密” -> 打开某篇博客-> 复制粘贴 -> 改改好用
- 【现在】引入Hutool -> SecureUtil.md5()
Hutool的存在就是为了减少代码搜索成本,避免网络上参差不齐的代码出现导致的bug。
4、️ 包含组件
可以根据需求对每个模块单独引入,也可以通过引入hutool-all方式引入所有模块。
5、 文档
6、 安装
6.1、使用Maven添加依赖
在项目的 pom.xml 的 dependencies 中加入以下内容:
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.5</version>
</dependency>
6.2、使用Gradle构建工具导入
implementation 'cn.hutool:hutool-all:5.8.5'
6.3 、非Maven项目的需要下载jar
6.3.1、 点击以下链接,下载 hutool-all-X.X.X.jar即可:
️注意 Hutool 5.x支持JDK8+,对Android平台没有测试,不能保证所有工具类或工具方法可用。 如果你的项目使用JDK7,请使用Hutool 4.x版本(不再更新)
6.3.2、编译安装
访问Hutool的Gitee主页:https://gitee.com/dromara/hutool 下载整个项目源码(v5-master或v5-dev分支都可)然后进入Hutool项目目录执行:
./hutool.sh install
然后就可以使用Maven引入了。
7、 Spring Boot中使用
7.1、 在 pom.xml 文件中添加依赖
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.5</version>
</dependency>
7.2、 使用工具库,栗子如下:
7.2.1、 计算出当前日期为中国农历的日期
@Test
void ChineseDatesTest() {
ChineseDate chineseDate = new ChineseDate(new Date());
System.out.println(chineseDate.toString());
}
7.2.2、 md5 的加密
@Test
void DigestUtilTest() {
String pwd = DigestUtil.md5Hex("123456");
System.out.println("加密之后的密码为:"+pwd);
}
7.2.3、 读取剪贴板的内容
@Test
void ClipboardUtilTest() {
System.out.println("当前剪贴板内容为:"+ClipboardUtil.getStr());
}
7.2.4、 身份证号码的验证
@Test
void CardTest() {
// 身份证号码
String id = "445322200112052521"; // 1、isValidCard:验证身份证号码是否有效合法
boolean valid = IdcardUtil.isValidCard(id);
System.out.println(valid); // 2、getAgeByIdCard:根据身份证获取年龄
DateTime date = DateUtil.parse("2022-8-31");
// 传入身份证号码和当前时间两个参数,获取年龄
int age = IdcardUtil.getAgeByIdCard(id, date);
// 断言年龄是否等于20岁
Assertions.assertEquals(age, 20);
// 输出结果
System.out.println("该人年龄为:"+ age); //3、getBirthByIdCard:获取生日
String birth = IdcardUtil.getBirthByIdCard(id);
System.out.println("该人生日为:"+ birth); // 4、获取省份
String province = IdcardUtil.getProvinceByIdCard(id);
System.out.println("该人来自于:"+ province ); }
7.2.5、 生成验证码
@Test
void verificationCodeTest() {
// 定义图形验证码的长和宽
LineCaptcha lineCaptcha = CaptchaUtil.createLineCaptcha(200,100);
// 图形验证码写出到指定的文件夹,可以写出到文件,也可以写出到流
lineCaptcha.write("d:/Pictures/Camera Roll/壁纸/插画/LineCaptcha.jpg");
// 输出code
System.out.println(lineCaptcha.getCode());
// 验证图形验证码的有效性,返回boolean值
lineCaptcha.verify("12345");
} //重新生成验证码
lineCaptcha.createCode();
lineCaptcha.write("d:/line.png");
//新的验证码
Console.log(lineCaptcha.getCode());
//验证图形验证码的有效性,返回boolean值
lineCaptcha.verify("1234");
7.2.6、 生成二维码
1、引入 zxing
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>3.3.3</version>
</dependency>
2、设置宽、高、背景色生成二维码
@Test
void QrConfigTest() {
// 通过QrConfig可以自定义二维码的生成参数
QrConfig qrConfig = new QrConfig(300,300);
// 设置边距,既二维码和背景之间的边距
qrConfig.setMargin(3);
// 设置前景色,既二维码颜色(黑色)
qrConfig.setForeColor(Color.black);
// 设置背景色(白色)
qrConfig.setBackColor(Color.white); // 生成二维码到指定的文件,也可以到流
QrCodeUtil.generate("https://www.hutool.cn/",qrConfig, FileUtil.file("d:/Pictures/Camera Roll/壁纸/插画/QrConfig.jpg"));
}
Hutool 的学习的更多相关文章
- hutool学习总结
1. 为什么要学习Hutool的使用 Hutool官网 中文写的已经很清楚了 Hutool是一款强力的工具类.封装了工作开发中一些常见的功能操作.避免重复造轮子,使用它大大提高的开发效率. 2. Hu ...
- hutool JAVA 工具类
https://hutool.cn/docs/#/ 入门和安装 A set of tools that keep Java sweet. -- 主页:https://hutool.cn/ | http ...
- SpringBoot学习笔记(十一:使用MongoDB存储文件 )
@ 目录 一.MongoDB存储文件 1.MongoDB存储小文件 2.MongoDB存储大文件 2.1.GridFS存储原理 2.2.GridFS使用 2.2.1.使用shell命令 2.2.2.使 ...
- Hutool :一个小而全的 Java 工具类库
Hutool 简介 Hutool 是一个小而全的 Java 工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以"甜甜的 ...
- 保姆级尚硅谷SpringCloud学习笔记(更新中)
目录 前言 正文内容 001_课程说明 002_零基础微服务架构理论入门 微服务优缺点[^1] SpringCloud与微服务的关系 SpringCloud技术栈 003_第二季Boot和Cloud版 ...
- Elasticsearch、XXLJob以及最近的学习记录
Elasticsearch.XXLJob以及最近的学习记录 前言 在这九月的最后一周,来总结一下最近的学习记录,主要是对于Elasticsearch.XXLjob的初步学习,想着还是多记录点,以便后面 ...
- hutool工具类常用API整理
0.官网学习地址 https://www.hutool.cn/ 1.依赖 <dependency> <groupId>cn.hutool</groupId> < ...
- Halo 开源项目学习(一):项目启动
项目简介 Halo 是一个优秀的开源博客发布应用,在 GitHub 上广受好评,正好最近在练习写博客,借此记录一下学习 Halo 的过程. 项目下载 从 GitHub 上拉取项目源码,Halo 从 1 ...
- 从直播编程到直播教育:LiveEdu.tv开启多元化的在线学习直播时代
2015年9月,一个叫Livecoding.tv的网站在互联网上引起了编程界的注意.缘于Pingwest品玩的一位编辑在上网时无意中发现了这个网站,并写了一篇文章<一个比直播睡觉更奇怪的网站:直 ...
- Angular2学习笔记(1)
Angular2学习笔记(1) 1. 写在前面 之前基于Electron写过一个Markdown编辑器.就其功能而言,主要功能已经实现,一些小的不影响使用的功能由于时间关系还没有完成:但就代码而言,之 ...
随机推荐
- pytest精髓__fixture
命令:fixture(scope='function',params=None,autouse=False,ids=None,name=None) 参数说明 scope:有四个级别参数函数" ...
- 第十篇:vue.js for循环语句(大作业进行时)
Vue.js 循环语句 <div id="app"> <ol> <li v-for="site in sites"> /*f ...
- Flume 组件安装配置
下载和解压 Flume 实验环境可能需要回至第四,五,六章(hadoop和hive),否则后面传输数据可能报错(猜测)! 可 以 从 官 网 下 载 Flume 组 件 安 装 包 , 下 载 地 址 ...
- Fast.Framework ORM 试用
简介 Fast.Framework 是一款基于 .NET 6 封装的轻量级ORM框架,支持多种数据库(SQL Server.Oracle.MySQL.PostgreSQL.SQLite). 优点 性能 ...
- 我的 Kafka 旅程 - Linux下的安装 & 基础命令
准备工作 安装解压缩工具 tar # 检查是否安装了解压缩工具 tar yum list tar # 如未安装 tar yum install tar -y 安装必备的 java # 检查是否安装了 ...
- Elasticsearch Dockerfile 例子
文章转载自:https://elasticstack.blog.csdn.net/article/details/111692444 前提条件 在继续执行本教程中概述的步骤之前,你需要具备一个关键的先 ...
- JavaScript 的闭包(closure)
以下内容为本人的学习笔记,如需要转载,请声明原文链接微信公众号「englyf」https://www.cnblogs.com/englyf/ 对于闭包的理解,其实可以归纳为,在创建函数时,同时创建了一 ...
- APICloud可视化编程(二)
上一期我们为大家讲解低代码在国内市场的当前现状以及APICloud可视化开发工具的组件类型和特点.相信大家对可视化编程有了一个整体的了解,那么今天带大家更进一步的使用组件. 下载开发工具 登录APIC ...
- Activate MFA报错:MFADevice entity at the same path and name already exists
MFA即:Multi-factor authentication (MFA) 今天在为自己账号Activate MFA时报错,如下图所示: Entity already exists This ent ...
- win10 python 环境搭建
1.在官网上下载python安装程序:www.python.org 官网是英文的,程序自己慢慢找就好了.因为机子是64位的,所以必须下载64位的pyhon安装程序,另外我这里下的是python版本是2 ...