Hutool使用
1、简介
Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率。
Hutool是项目中“util”包友好的替代,它节省了开发人员对项目中公用类和公用工具方法的封装时间,使开发专注于业务,同时可以最大限度的避免封装不完善带来的bug。
应用场景:
以二维码生成为例:
👴【以前】打开搜索引擎 -> 搜“Java 二维码生成” -> 打开某篇博客-> 复制粘贴 -> 改改好用
👦【现在】引入Hutool -> QrCodeUtil.generate(“https://hutool.cn/”, 300, 300, FileUtil.file(“d:/qrcode.jpg”));
总结:Hutool帮我们节约了花费在面向百度的时间,使我们只要专注于业务就完事了。
2、入门和安装
📦安装
🍊Maven
在项目的pom.xml的dependencies中加入以下内容:
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.7.0</version>
</dependency>
🍐Gradle
compile ‘cn.hutool:hutool-all:5.7.0’
3、 部分Util的使用Demo
Demo1、二维码工具-QrCodeUtil
1.1、引入zxing
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>3.3.3</version>
</dependency>
1.2、调用QrCodeUtil的generate方法生成二维码
// 生成指定url对应的二维码到文件,宽和高都是300像素
QrCodeUtil.generate("https://hutool.cn/", 300, 300, FileUtil.file("d:/qrcode.jpg"));
效果图
QrConfig可以自定义二维码的生成参数,例如长、宽、二维码的颜色、背景颜色、边距等参数,详情还得参考官方文档:链接: http://hutool.cn/.
2、身份证工具-IdcardUtil
2.1 调用IdcardUtil
String ID_18 = "321083197812162119";
String ID_15 = "150102880730303";
//是否有效
boolean valid = IdcardUtil.isValidCard(ID_18);
boolean valid15 = IdcardUtil.isValidCard(ID_15);
//转换
String convert15To18 = IdcardUtil.convert15To18(ID_15);
Assert.assertEquals(convert15To18, "150102198807303035");
//年龄
DateTime date = DateUtil.parse("2017-04-10");
int age = IdcardUtil.getAgeByIdCard(ID_18, date);
Assert.assertEquals(age, 38);
int age2 = IdcardUtil.getAgeByIdCard(ID_15, date);
Assert.assertEquals(age2, 28);
//生日
String birth = IdcardUtil.getBirthByIdCard(ID_18);
Assert.assertEquals(birth, "19781216");
String birth2 = IdcardUtil.getBirthByIdCard(ID_15);
Assert.assertEquals(birth2, "19880730");
//省份
String province = IdcardUtil.getProvinceByIdCard(ID_18);
Assert.assertEquals(province, "江苏");
String province2 = IdcardUtil.getProvinceByIdCard(ID_15);
Assert.assertEquals(province2, "内蒙古");
工具中主要的方法包括:
1、isValidCard 验证身份证是否合法
2、convert15To18 身份证15位转18位
3、getBirthByIdCard 获取生日
4、getAgeByIdCard 获取年龄
5、getYearByIdCard 获取生日年
6、getMonthByIdCard 获取生日月
7、getDayByIdCard 获取生日天
8、getGenderByIdCard 获取性别
9、getProvinceByIdCard 获取省份
Demo3、信息脱敏工具-DesensitizedUtil
介绍
在数据处理或清洗中,可能涉及到很多隐私信息的脱敏工作,因此Hutool针对常用的信息封装了一些脱敏方法。
现阶段支持的脱敏数据类型包括:
1、用户id
2、中文姓名
3、身份证号
4、座机号
5、手机号
6、地址
7、电子邮件
8、密码
9、中国大陆车牌,包含普通车辆、新能源车辆
10、银行卡
整体来说,所谓脱敏就是隐藏掉信息中的一部分关键信息,用*代替,自定义隐藏可以使用StrUtil.hide方法完成。
例子
// 5***************1X
DesensitizedUtil.idCardNum("51343620000320711X", 1, 2);
Hutool的使用差不多就这么简单,更多的使用方法请参考它的官方文档
链接: http://hutool.cn/.