Hutool是一个实用的Java工具包,有pom.jar,javadoc.jar和sources.jar等文件,对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装,组成各种Util工具类。适用于Web开发,与其它框架无耦合,高度可替换,欢迎使用。
Hutool是一个工具包,我日常写项目的一些积累,广泛学习其它开源项目精髓,经过自己整理修改,希望你看了之后会有所启发或者能给你工作中带来帮助。说实话我现在写代码已经离不开自己这个工具包了,叫做Hutool也有“糊涂”之意,表示很多功能糊里糊涂就实现了。好吧,言归正传,说说里面一些好玩的方法(工具包中大部分是一些静态方法)。
主页:http://hutool.cn/
文档:http://hutool.mydoc.io/ (感谢开源中国提供非常好用的Team文档平台)
此次更新为一次大版本跨越,主要的新特性为增加ExcelWriter用于Excel写出。
MailUtil邮件工具类支持附件
Convert增加int、long、short与bytes之间的转换
BeetlUtil增加更多简化方法
extra模块中模板相关工具类移入template包中
ScriptUtil增加eval方法,执行脚本快捷方法
增加Excel03SaxReader用于03格式的Excel通过Sax方式读取
HttpUtil增加超时重载,post方法支持Rest模式
core包中去除servlet-api可选依赖,extra模块中增加ServletUtil(core包中的部分方法移入此工具类)
MailUtil支持SSL方式连接
增加MapProxy,用于代理Map对象,提供各种getXXX方法(感谢@【珠海】hzhhui)
Convert增加toXXXArray方法
增加剪贴板工具类ClipboardUtil(感谢@【北京】宁静)
ObjectUtil增加toString方法(感谢@【南京】toling)
XmlUtil增加readObjectFromXml重载(感谢@【北京】酱油君)
FileUtil和IoUtil去除final修饰(issue#49@Github)
为了更好的兼容性,Getter和Setter方法获取忽略大小写
StrUtil增加split和splitTrim重载方法(感谢@【南京】toling @【北京】宁静)
增加FileUtil.writeLines重载方法和writeUtf8Lines方法(感谢@【北京】宁静)
Bug修复
修复FileUtil.normalize导致的路径修复问题
db模块中字段使用别名时去掉包装符
CollUtil.filter方法对于不可变集合参数报错问题改进(issue#IFW3Y@Gitee)
修复Convert.convert方法目标为数组对象时导致的问题
修复poi模块中ExcelReader读取带小数的标准单元格时小数部分丢失问题修复
修复SecureUtil.rsa和SecureUtil.dsa方法中publicKey传入问题(感谢@【上海】毛毛虎)
修复Cache模块传入Integer.MAX_VALUE错误问题(感谢@【南京】雲栖鬆)
修复BeanDesc无法识别isXXX方法的问题
Hutool的设计思想是尽量减少重复的定义,让项目中的util这个package尽量少,总的来说有如下的几个思想:
减少代码录入。
常用功能组合起来,实现一个功能只用一个方法。
简化Java API,原来需要几个类实现的功能我也只是用一个类甚至一个方法(想想为了个线程池我得new多少类……而且名字还不好记)
对于null的处理我没有可以回避,而是采取“你给我null我也给你返回null”这种思想,尽量不在工具类里抛空指针异常(这思想稍猥琐啊……直接把包袱扔给调用者了,好吧,谁让你给我null了)。
一些固定使用的算法收集到一起,不用每次问度娘了(例如Base64算法、MD5、Sha-1,还有Hash算法)
借鉴Python的很多小技巧(例如列表切片,列表支持负数index),让Java更加好用。
非常好用的ORM框架,同样借鉴Python的Django框架,以键值对的实体代替对象实体,大大降低数据库访问的难度(再也不用像Hibernate一样配置半天ORM Mapping了)。
极大简化了文件、日期的操作,尤其是相对路径和绝对路径问题做了非常好的封装,降低学习成本。