Java开发神器Hutool工具
前言
只要是从事java开发的同学,Hutool
这个工具类应该不需要我过多介绍,非常有名,工具类非常齐全,可以满足日常开发的各种用途,这边文章长期更新,将常用的工具类我会一一列出来,做个笔记,方便后面使用参考
安装
这里是官方文档,介绍了安装方法和常用的一些工具类
Maven项目使用
1 | <dependency> |
Gradle项目使用
1 | implementation 'cn.hutool:hutool-all:5.8.4' |
也可以自行下载jar包,下载方式参考官方文档,这里不展开
图片压缩
1 | Img.from(FileUtil.file("e:/pic/1111.png")) |
获取base64图片大小
1 | int size = base64Str.length() - encode.length() / 8 * 2;//计算出来是字节 |
压缩base64图片
1 | BufferedImage bufferedImage = ImgUtil.toImage(base64Str); |
StrUtil
这是一个string处理相关的工具类,方法特别的丰富,基本上涵盖了我们日常开发中所能想到的所有方法,下面介绍几个
字符串是否为空白isBlank
,空白的定义如下:
null
- 空字符串:
""
- 空格、全角空格、制表符、换行符,等不可见字符
1 | public static boolean isBlank(CharSequence str) |
相反的方法就是isNotBlank
1 | public static boolean isNotBlank(CharSequence str) |
这是我们常用的判空的方法,其实还有isEmpty
可以判空,但是这个不处理空白符,所以一般我们只用isBlank
就行
其他的比如我们常见的字符串方法
split
分割
``sub` 截取
indexOf
索引
startWith
前缀是否匹配
endWith
后缀是否匹配
equals
两个字符串是否相等
都有很多类似的相关方法,具体的方法和API文档参考这里
IdUtil
在分布式环境中,唯一ID生成应用十分广泛,生成方法也多种多样,Hutool针对一些常用生成策略做了简单封装
uuid生成
1 | //生成的UUID是带-的字符串,类似于:a5c8a5e8-df2b-4706-bea4-08d0939410e3 |
ObjectId生成
1 | //生成类似:5b9e306a4df4f8c54a39fb0c |
Snowflake(雪花算法)
1 | //参数1为终端ID |
注意 IdUtil.createSnowflake
每次调用会创建一个新的Snowflake对象,不同的Snowflake对象创建的ID可能会有重复,因此请自行维护此对象为单例,或者使用IdUtil.getSnowflake
使用全局单例对象。
SecureUtil
SecureUtil
主要针对常用加密算法构建快捷方式,还有提供一些密钥生成的快捷工具方法。
对称加密
SecureUtil.aes
SecureUtil.des
摘要算法
SecureUtil.md5
SecureUtil.sha1
SecureUtil.hmac
SecureUtil.hmacMd5
SecureUtil.hmacSha1
非对称加密
SecureUtil.rsa
SecureUtil.dsa
uuid
SecureUtil.simpleUUID
方法提供无“-”的UUID
密钥生成
SecureUtil.generateKey
针对对称加密生成密钥SecureUtil.generateKeyPair
生成密钥对(用于非对称加密)SecureUtil.generateSignature
生成签名(用于非对称加密)