

Hutool 3.1.2免费版是一款非常强大的java工具库,拥有非常实用的工具操作类,覆盖大部分应用场景,需要的用户赶快来下载吧。
Hutool是一个Java工具集,针对我们项目中util包进行开刀,抽象大量的工具方法,旨在减少项目中工具类的数量,将我们的编码工作专注在业务上。Hutool 对文件、流、加密解密、转码、正则、线程、XML、日期、Http客户端 等 JDK 方法进行封装,组成各种 Util 工具类。
Hutool并非框架,而是一个工具类方法集合,随用随取,且随时可被替换,与任何框架不冲突。
Hutool的大部分工具方法并不依赖第三方包(extra模块对第三方框架封装工具类除外),轻量简洁。
1. 方法优先于对象
在工具类中,往往以静态方法为主。方法集中在一个类中,配合IDE查找使用起来是十分便利的。于是Hutool将JDK中许多的类总结抽象为一个方法,这一原则使用最多的就是流的相关方法,这些方法很好的隐藏了XXXInputStream、XXXReader等的复杂性。
2. 自动识别优于用户定义
其实很多时候,有些参数、设置等是没有必要我们自己传入的,完全可以靠逻辑判断自动完成。一个方法很多时候明明只需要传3个参数,我们非要传4个,这多出的一个参数本身就是代码的一种冗余。
这一原则在Hutool的各个角落都有所体现,尤为明显的比如log模块。构建日志对象的时候,很明显类名可以动态获取,何必让使用者再传入呢?再比如在db模块的数据库配置中,数据库驱动命名完全可以根据连接字符串判断出来,何必要让用户传入?这些问题的在Hutool中都有非常好的封装,而这一原则也渐渐变成Hutool哲学的一部分。
3. 便捷性与灵活性并存
所谓便捷性,就是我们在调用一个方法的时候参数要尽量少,只传必要参数即可,非必要参数使用默认值即可(想想一个方法一堆参数的时候,调用者晕头转向不知所云)。
所谓灵活性正好与便捷性相反,要让一个方法的参数尽量多,为用户灵活的操作方法提供最大可能性。
这两个原则看似矛盾,其实只是针对不同场景设定的而已,缺一不可。便捷性强调拿来即用,为快速开发提供可能;灵活性强调最大限度调优,为性能调优和扩展提供便利。
这一原则在针对编码问题上体现尤为突出,我们的大部分方法都是默认“UTF-8”编码的,这也是我们推荐的编码方式,推荐大部分项目使用的编码。但是一旦有遗留项目使用了类似“GBK”等编码,没关系,我们提供在相关方法中提供Charset对象参数,可以自定义编码。这样使用这一原则就兼顾了各种项目的情况。
4. 适配与兼容
在Hutool中,适配器模式运用特别广泛,log模块适配主流各大框架,db模块适配主流各种连接池和关系数据库。这种适配一是提高灵活性,二是可以很好的兼容各大框架,让Hutool可以在各种复杂项目环境中生存的很好。
适配兼容产生的另一个原则是:你有我配,你无我有。说白了就是:如果你项目中有这个框架,我可以完美适配,如果你没有引入任何框架,Hutool自身实现了一些逻辑可以很好的工作。
5. 可选依赖原则
在Java项目中依赖常常是个头疼的问题,不同的框架强依赖另一些框架或包,虽然Maven可以很好的处理冲突问题,但是项目底下满满的依赖jar包,是不是无形中拖慢了项目,也增加了复杂性和不确定性?而很多时候,我们是不是只是为了用一个小小的方法,就要引入一个第三方包,谁喜欢这样臃肿的项目?
Hutool中也会有一些依赖,但是全部都是optional的,在使用中不会关联依赖,而这些依赖只有在使用者使用到时才会调用,这时可能会报ClassNotFoundException,不用担心,我们自己引入即可。为什么要这样做呢?以VelocityUtil这个工具类为例,使用Velocity的人占比极少,我们不能为了这些用户而强引入Velocity包,而使用这个工具类的人应该明白,我们应该自己引入这个包。
而更多时候,我们需要用到某个方法时,我的做法是将方法拷贝到项目中(Hutool中的方法正在不断积累),类似于Apache Commons中的方法,Hutool中基本都有取代方法,完全不必要引入。
可选依赖原则让我们的项目更加精简,问题也更容易排查。
6. 无侵入原则
Hutool始终是一个工具类而不是框架,这意味着它对项目的侵入几乎为零,每个方法都是可被代替的,甚至整个Hutool也是可被替换的。这种无侵入性,让使用者可以更加放心的在项目中引入,也保证了与其它框架完美的兼容。
新特性
ArrayUtil增加containsIgnoreCase和indexOfIgnoreCase方法
DbUtil增加toSqlDate和toSqlTimestamp和setShowSqlGlobal方法
RuntimeUtil增加可选编码的方法
CharsetUtil.systemCharset修改逻辑,Windows使用GBK编码
db模块加强异常提示信息
升级可选依赖版本
Setting增加getandRemove和getAndRemoveStr方法,并去除db模块中配置键别名获取相关冗余方法
FileUtil增加subPath、getPathEle方法(针对JDK7的Path对象封装)
改进WatchMonitor,文件不存在时根据path判断是文件还是目录
参阅iceroot库,增加DateUtil增加timeToSecond和secondToTime方法(感谢@【北京】宁静)
DateUtil.beginOfWeek加入方法可选一周的第一天,且默认周一为第一天(感谢@【北京】flyinke)
Hutool-db支持value为"= null"转换为"is null"
工具类继承支持(去除private构造)
增加getGroup和findAllGroup两类方法
UrlUtil增加utf-8重载(感谢@【北京】宁静)
按照Ali规范整理代码。Cache模块中定时清理改为定时任务池方式
Http模块全局Header支持
JSON模块增加JSONStrFromater,用于格式化非标准的JSON字符串
增加BeanDesc代替JDK的BeanInfo,提供更灵活的Getter和Setter
BeanUtil.fillBean方法使用BeanDesc替换
增加FileAppender类用于积累追加文件内容
增加ReferenceUtil用于工具化创建软引用和弱引用
ReflectUtil中将异常包装为UtilExcception,并增加invoke重载支持字符串
ClassUtil中部分方法被标记过时,大部分与ReflectUtil中方法重叠,通过注释指引到ReflectUtil
core包中加入验证码生成
弃用Random类,改为ThreadLocalRandom
extra模块中增加MailUtil发送邮件工具(依赖javax.mail)
StrUtil增加strip和stripIgnoreCase方法
poi模块新增ExcelSaxReader,对大数据量的Excel读取增加支持
Bug修复
db模块修复Oracle中传入java.util.Date对象无法识别类型问题(默认按照Timestamp处理)(感谢@【杭州】wiley)
修复RuntimeUtil中乱码和单条带参数命令执行失败问题(@【北京】宁静)
修复ThreadUtil newExecutorByBlockingCoefficient中不能传入0的bug(issue#IF7UN@Gitee)
修复CollUtil.split的bug(issue#IF7UT@Gitee)
修复Page.getEndPosition()错误(感谢@【深圳】尘风了了)
修复Http中head方法读取body失败问题,略过读取body(issue#IFA3C@Gitee)
修复从正文中获取编码类型的错误(issue#IFBYO@Gitee)
修复IOUtil.readBytes中读取为0导致的越界问题(issue#46@Github)
修复Crypto模块中DESede算法密钥生成bug
修复JSON转Bean时在ignoreError模式下类型不匹配时无法忽略问题
修复RSA分组加密中中文导致的问题(pr#47@Github)
修复NumberUtil.equals方法的一个坑(精度不同导致不同)(感谢@【北京】Dull)
修复StrUtil中部分方法判空后返回原值导致的空指针问题
248.9M / 12-08
RTS即时战略
下载
248.9M / 12-08
RTS即时战略
下载
253.4M / 12-08
RPG角色扮演
下载
妻中蜜3全cg存档
10博网体育备用网址工具 / 28KB
下载
1
csgo空格键连跳脚本绿色免费版
10博网体育备用网址工具 / 564KB
下载
2
platform tools工具包官方版v36.0.2
编程软件 / 7.3M
下载
3
易控王文档加密软件v2017官方版绿色免费版
文件处理 / 46M
下载
4
DNF9周年第十套天空时装补丁
10博网体育备用网址工具 / 1.6M
下载
5
vba for wps安装包v7.1官方版
编程软件 / 35.0M
下载
6
3456wg多选皮肤v10.6官方版
10博网体育备用网址工具 / 2.2M
下载
7
GTKWave(WAV文件波形察看工具)v3.3.66 官方版
文件处理 / 4.4M
下载
8
支付宝AR红包小工具1.0 绿色版
文件处理 / 255KB
下载
9
苹果ios10强制降级工具绕过验证1.0 官方版
文件处理 / 60M
下载
10
153M / 06-05
立即下载
444M / 06-05
立即下载
497M / 06-05
立即下载
2.34G / 06-05
立即下载
815.1M / 06-05
立即下载
1.33G / 06-05
立即下载
600M / 06-05
立即下载
18M / 06-04
立即下载
1.35G / 06-04
立即下载
892.3M / 06-04
立即下载
985.7M / 06-08
立即下载
301.0M / 06-08
立即下载
34.60G / 06-08
立即下载
2.63G / 06-08
立即下载
926.0M / 06-08
立即下载
847.0M / 06-08
立即下载
296.2M / 06-05
立即下载
35.0M / 06-05
立即下载
365.2M / 06-05
立即下载
234.2M / 06-05
立即下载
11.2M / 06-05
立即下载 45.5M / 06-05
立即下载 14.1M / 06-05
立即下载 26.2M / 06-05
立即下载 133M / 06-05
立即下载 390.3M / 06-05
立即下载 8M / 06-04
立即下载 156M / 06-04
立即下载 91.7M / 06-04
立即下载 21M / 06-04
立即下载 181.9M / 06-05
立即下载 46M / 06-05
立即下载 88.6M / 06-05
立即下载 29.7M / 06-05
立即下载 870.4M / 06-05
立即下载 44M / 06-05
立即下载 13.7M / 06-05
立即下载 29.30G / 06-04
立即下载 25.34G / 06-04
立即下载 2.73G / 06-04
立即下载 1.05G / 06-05
立即下载 2.49G / 06-01
立即下载 9.84G / 06-01
立即下载 956.1M / 05-28
立即下载 181.5M / 05-28
立即下载 255.9M / 05-28
立即下载 245.1M / 05-28
立即下载 1.07G / 05-28
立即下载 113.2M / 05-28
立即下载 240.0M / 05-28
立即下载 25.7M / 06-05
立即下载 120.5M / 06-05
立即下载 1.10G / 06-05
立即下载 6.09G / 06-04
立即下载 8M / 06-04
立即下载 3.30G / 06-04
立即下载 820.0M / 06-04
立即下载 30.2M / 06-04
立即下载 310.4M / 06-04
立即下载 8M / 06-04
立即下载 231.5M / 06-05
立即下载 79.6M / 06-05
立即下载 17.7M / 06-05
立即下载 499.9M / 06-05
立即下载 160M / 06-04
立即下载 60M / 06-04
立即下载 254.8M / 06-04
立即下载 268M / 06-04
立即下载 232.0M / 06-04
立即下载 1.40G / 12-19
立即下载 35.6M / 06-05
立即下载 4.07G / 06-05
立即下载 222.0M / 06-05
立即下载 13.4M / 01-03
立即下载 293.0M / 09-05
立即下载 1.22G / 07-06
立即下载 20.53G / 07-06
立即下载 229.9M / 07-06
立即下载 3.70G / 07-06
立即下载 904.0M / 07-06
立即下载