发布于 2017-09-13 16:56:59 | 181 次阅读 | 评论: 0 | 来源: 网友投递
hutool Java Util 工具类
hutool 是一个Util工具类(类似之前的 common-tools),但是这个工具类依赖更少,提供更多的实用功能,可以大大加快开发的速度。里面每个类相对独立,具体请阅读注释。
Hutool 是一个Java工具包,提供了丰富的文件、日期、日志、正则、字符串、配置文件等工具方法,并封装了一套简单易用的ORM框架。
文档:http://hutool.mydoc.io/ (感谢开源中国提供非常好用的Team文档平台)
-----------------------------------------------------------------------------------------------
最近关于Hutool的几件“大事”:
1. Hutool QQ群人数突破500,已升级为千人群,在Gitee中的star数突破2K大关。
2. 结束3.0.X时代,进入3.1.X时代,在广大用户的强烈下期盼,这个版本加入了POI中对Excel读取的支持,考虑到3.1.0可能存在问题(事实上根据热心群友反馈确实存在一些坑木有填),因此与3.1.1一起推送新闻
3. 最重要的,开源中国当家花旦红薯大大强势入驻Hutool群,在此特别鸣谢,哈哈~
4. 随着Hutool知名度的提高,开始有人质疑我抄袭其它开源项目,在这里我想说:请不要质疑,事实上我就是抄了๑乛◡乛๑。我在回复中是这样答复的:
> Hutool的Cache部分借鉴Jodd代码。已在注释中注明。借鉴的同时也在为jodd贡献issue。而很多工具类的方法本身就是通用的,实现大同小异,你会发现Hutool中能看到一些方法与包括Jodd、Guava、Spring、Apache-Commons(例如FastDateFormat类)系列 、Blade(例如FastByteArray类)框架、Nutz框架、t-io、Act-Framework、Cron4j、Jfinal(主要是db模块)类似。作者不否认“抄袭”了一些方法,也不否认很多实现方法来自于网络中的某些博客和Stackoverflow,大部分在注释中都有标注。文档中也有相关说明。作者认为,部分方法借鉴后优化改造并开源符合开源协议要求,也鼓励使用Hutool的任何项目(包括商业项目)在不方便引入Hutool的情况下copy方法到项目中。我想我这种开放态度也会被大部分开源作者和用户理解。
Hutool作为“超级工具类”一直被用户所喜爱,原因之一就是能为用户减少时间成本,降低开发门槛和复杂度,我想做为一个开源项目,它的职责已经达到了。而我,做为一个非程序员,做为一个纯粹的编程爱好者,Hutool于我没有KPI,没有商业,没有金钱,完全是一种心理满足,而这种对于代码的热爱,也会使我持续维护这一项目。
-----------------------------------------------------------------------------------------------
新特性
* ExcelReader中根据单元格格式判断Double还是Long类型(感谢@act家的excel-reader)
* Map相关方法剥离为MapUtil
* 新增CollUtil做为CollectionUtil别名
* 非对称加密加入PublicKey对象和PrivateKey对象构造,RSA加入N,e,d参数支持(感谢@【帝都】小帅帅)
* Props支持其它编码格式(PR#37@Github)
* DateBetween增加可选是否取绝对值选项构造(issue#IETE0@gitee)
* 加入Rythm模板引擎工具类
* cron模块中增加方法支持获取Task和CronPattern(感谢@Γ平淡ㄎ)
* HttpResponse中增加个体Cookie方法
* Hive驱动识别支持。(@【北京】宁静)
* IoUtil中IOException替换为IORuntimeException
* IoUtil和FileUtil增加UTF-8编码重载
* Http增加headerList方法
* Http设置Cookie支持HttpCookie对象列表
* 新增RuntimeUtil,用于执行系统命令的快捷工具类(感谢@【北京】宁静)
* 新增DateUtil.isExpired方法(issue#41@Github)
* 新增MapUtil.join和builder方法(pr#40@Github)
Bug修复
* NumberUtil中针对Double重载方法,避免传入包装类型引起的歧义
* 修复Bean转JSONObject时字段无getter方法导致的字段值丢失问题(感谢@猎隼丶止戈,issue#IEIJG@osc)
* 修复StrUtil.addPrefixIfNot方法问题(感谢@【苏州】咖啡)
* 修复db部分Session中beginTransaction()逻辑问题(感谢@taoguan)
* 修复POI模块ExcelReader空单元格被忽略问题。
* 修复cron模块中移除Task导致的index错误问题(感谢@Γ平淡ㄎ)
* 修复POI模块中自定义单元格含有中文时无法识别为日期的问题(感谢@【昆明】Tang)
* 修复RSA算法编码问题(感谢@【长沙】笑小生)
* Http模块对参数key做编码(issue#IEYLP@gitee)
* 修复ImageUtil写出文件没有关闭流导致的文件被占用问题(issue#44@Github)
-------------------------------------------------------------------------------------------------------------
新特性
* CollectionUtil增加findOne、findOneByField、getFieldValues等方法
* cron模块支持Quartz的"?"表达式
* ReUtil增加getAllGroups方法用于获取所有分组匹配
* CollectionUtil增加toMapList和toListMap方法,提供行列转换(感谢@【北京】宁静)
* WatchMonitor增加文件递归(子目录)监听支持(感谢@t-io)
* cron模块中改进InvokeTask,在初始化时验证并加载类和方法(感谢@【南京】toling)
* 增加ConcurrentHashSet
* HttpRequestsetXXX补充返回this(感谢【南京】peckey)
* Hutool-db增加 BeanHandler、BeanListHandler,find方法增加可变参数(返回字段)
* 增强手机号码验证正则(感谢@【北京】宁静 @【北京】iisimpler)
* 创建Chain接口,用于责任链模式的实现
* JSON.getByExp方法增加重载方法,可以指定返回值类型(感谢【深圳】富)
* FileUtil增加转换文件编码和换行符的方法(感谢@【北京】宁静)
* 增加IterUtil,将CollectionUtil中部分方法迁入
Bug修复
* 修复CollectionUtil中并集、差集问题(issue#IE9VH@osc)
* 修复批量插入只有一个对象无法插入问题(感谢@【北京】游弋苍茫)
* 修复NumberUtil.div错误(感谢@【北京】宁静)
* 修复DateUtil.beginOfYear问题(感谢@【北京】iisimpler)
* 修正Email正则,符合RFC 5322规范(感谢@【北京】iisimpler)
* 修正ArrayUtil.isEmpty逻辑(感谢@【北京】仓山有井名为空)
* 修复计算第几周时没有考虑每周第一天的情况(DateTime增加setFirstDayOfWeek方法),并设置默认值为周一(@【北京】仓山有井名为空)