一个Java基础工具类,对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装,组成各种Util工具类,同时提供以下组件:
- 布隆过滤
- 缓存
- 数据库ORM(基于ActiveRecord思想)
- HTTP客户端
- IO
- JSON
- 日志
- System(JVM和系统信息等)
- Setting(一种扩展Properties的配置文件)
Hutool是一个工具包,我日常写项目的一些积累,参考了一些Apache Commons Lang和JODD里的一些写法,不过大部分还是自己写的,希望你看了之后会有所启发或者能给你工作中带来帮助。说实话我现在写代码已经离不开自己这个工具包了,叫做Hutool也有“糊涂”之意,表示很多功能糊里糊涂就实现了。好吧,言归正传,说说里面一些好玩的方法(工具包中大部分是一些静态方法)。
Hutool的设计思想是尽量减少重复的定义,让项目中的util
这个package尽量少,总的来说有如下的几个思想:
- 减少代码录入。
- 常用功能组合起来,实现一个功能只用一个方法。
- 简化Java API,原来需要几个类实现的功能我也只是用一个类甚至一个方法(想想为了个线程池我得new多少类……而且名字还不好记)
- 对于null的处理我没有可以回避,而是采取“你给我null我也给你返回null”这种思想,尽量不在工具类里抛空指针异常(这思想稍猥琐啊……直接把包袱扔给调用者了,好吧,谁让你给我null了)。
- 一些固定使用的算法收集到一起,不用每次问度娘了(例如Base64算法、MD5、Sha-1,还有Hash算法)
- 借鉴Python的很多小技巧(例如列表切片,列表支持负数index),让Java更加好用。
- 非常好用的ORM框架,同样借鉴Python的Django框架,以键值对的实体代替对象实体,大大降低数据库访问的难度(再也不用像Hibernate一样配置半天ORM Mapping了)。
- 极大简化了文件、日期的操作,尤其是相对路径和绝对路径问题做了非常好的封装,降低学习成本。
在项目的pom.xml的dependencies中加入以下内容:
<dependency>
<groupId>com.xiaoleilu</groupId>
<artifactId>hutool</artifactId>
<version>X.X.X</version>
</dependency>
注:工具包的版本可以通过 https://search.maven.org/ 搜索hutool
找到项目。
可以从https://search.maven.org/ 搜索hutool
找到项目,点击对应版本,下面是相应的Jar包,导入即可使用。
最新的2.14.0版本Jar下载地址:https://search.maven.org/remotecontent?filepath=com/xiaoleilu/hutool/2.14.0/hutool-2.14.0.jar
Java doc下载地址:https://search.maven.org/remotecontent?filepath=com/xiaoleilu/hutool/2.14.0/hutool-2.14.0-javadoc.jar