Hutool(Java基础工具包) v4.0.11
分享到:
Hutool是一个Java工具集,一个Java基础工具类,类似于jodd和Apache commons lang的Java工具类。Hutool是Hu + tool的自造词,前者致敬我的“前任公司”,后者为工具之意,谐音“糊涂”,寓意追求“万事都作糊涂观,无所谓失,无所谓得”的境界。帮助我们简化每一行代码,减少每一个方法,让Java语言也可以“甜甜的”。针对我们项目中util包进行开刀,抽象大量的工具方法,旨在减少项目中工具类的数量,将我们的编码工作专注在业务上。Hutool 对文件、流、加密解密、转码、正则、线程、XML、日期、Http客户端 等 JDK 方法进行封装,组成各种 Util 工具类。 它并非框架,而是一个工具类方法集合,随用随取,且随时可被替换,与任何框架不冲突。此软件的大部分工具方法并不依赖第三方包(extra模块对第三方框架封装工具类除外),轻量简洁。完善了单元测试机制,让开发人员提高工作效率!提供了丰富的文件、日期、日志、正则、字符串、配置文件等工具方法,并封装了一套简单易用的ORM框架。适用于Java Web开发,可以与其它框架无耦合,并拥有高度可替换的特性,有需要的赶快下载吧!
通过DateUtil类,提供高度便捷的日期访问、处理和转换方式。
HTTP客户端
通过HttpUtil对HTTP客户端的封装,实现便捷的HTTP请求,并简化文件上传操作。
转换工具
通过Convert类中的相应静态方法,提供一整套的类型转换解决方案,并通过ConverterRegistry工厂类自定义转换。
配置文件工具(SETTING)
通过Setting对象,提供兼容Properties文件的更加强大的配置文件工具,用于解决中文、分组等JDK配置文件存在的诸多问题。
日志工具
Hutool的日志功能,通过抽象Log接口,提供对Slf4j、LogBack、Log4j、JDK-Logging的全面兼容支持。
JDBC工具类(DB模块)
通过db模块,提供对MySQL、Oracle等关系型数据库的JDBC封装,借助ActiveRecord思想,大大简化数据库操作。
1、减少代码录入。
2、常用功能组合起来,实现一个功能只用一个方法。
3、简化Java API,原来需要几个类实现的功能我也只是用一个类甚至一个方法(想想为了个线程池我得new多少类……而且名字还不好记)
4、对于null的处理我没有可以回避,而是采取“你给我null我也给你返回null”这种思想,尽量不在工具类里抛空指针异常(这思想稍猥琐啊……直接把包袱扔给调用者了,好吧,谁让你给我null了)。
5、一些固定使用的算法收集到一起,不用每次问度娘了(例如Base64算法、MD5、Sha-1,还有Hash算法)
6、借鉴Python的很多小技巧(例如列表切片,列表支持负数index),让Java更加好用。7、非常好用的ORM框架,同样借鉴Python的Django框架,以键值对的实体代替对象实体,大大降低数据库访问的难度(再也不用像Hibernate一样配置半天ORM Mapping了)。
8、极大简化了文件、日期的操作,尤其是相对路径和绝对路径问题做了非常好的封装,降低学习成本。
缓存
克隆接口
类型转换
日期处理
数据库ORM(基于ActiveRecord思想)
基于DFA有限自动机的多个关键字查找
HTTP客户端
IO和文件
有用的一些数据结构
日志
反射代理类的简化(AOP切面实现)
Setting(一种扩展Properties的配置文件)
System(JVM和系统信息等)
WatchService的封装(文件变动监控)
XXXUtil各种有用的工具类
子模块
每个子模块可以被单独引入使用,修改左边名字为artifactId即可。如果想引入所有模块,可以引入hutool-all即可。
hutool-aop JDK动态代理封装,提供非IOC下的切面支持
hutool-bloomFilter 布隆过滤,提供一些Hash算法的布隆过滤
hutool-cache 缓存
hutool-core 核心,包括Bean操作、日期、各种Util等
hutool-cron 定时任务模块,提供类Crontab表达式的定时任务
hutool-crypto 加密解密模块
hutool-db JDBC封装后的数据操作,基于ActiveRecord思想
hutool-dfa 基于DFA模型的多关键字查找
hutool-extra 扩展模块,对第三方封装(模板引擎、邮件等)
hutool-http 基于HttpUrlConnection的Http客户端封装
hutool-log 自动识别日志实现的日志门面
hutool-script 脚本执行封装,例如Javascript
hutool-setting 功能更强大的Setting配置文件和Properties封装
hutool-system 系统参数调用封装(JVM信息等)
hutool-geo GeoHash封装
hutool-json JSON实现
通过Maven引入项目
RELEASE版本引用
在项目的pom.xml的dependencies中加入以下内容:
cn.hutool hutool-all 4.0.12
SNAPSHOT版本引用
添加SNAPSHOT支持:
org.sonatype.oss oss-parent 9
引用SNAPSHOT版本的库
cn.hutool hutool-all 4.0.13-SNAPSHOT
通过Gradle引入项目
compile 'cn.hutool:hutool-all:4.0.12'
工具包的版本可以通过 http://search.maven.org/ 搜索hutool-all找到项目。
非Maven项目
直接下载jar包
可以从http://search.maven.org/ 搜索hutool-all找到项目,点击对应版本,下面是相应的Jar包,导入即可使用。
一键直达:http://search.maven.org/#search%7Cga%7C1%7Chutool-all
如果中央库访问不便,可以访问阿里云的资源:
http://maven.aliyun.com/nexus/content/groups/public/cn/hutool/hutool-all/
自行编译安装
访问Hutool的码云主页:https://gitee.com/loolly/hutool 下载整个项目源码(v4-master或v4-dev分支都可)然后进入Hutool项目目录执行:
bin/hutool.sh install
- 增加 ThreadUtil.safeSleep方法
- 增加CollectionUtil.addAllIfNotContains方法
- 增加NumberUtil
- 增加hutool-cron模块
- 增加 ThreadUtil.waitForDie
- 增加DateUtil.betweenDay方法
- 增加Snowflake算法
- 对Util类加final修饰符,并添加private构造方法
- 增加 ThreadUtil.interupt方法
- Setting中对RuntimeException变为SettingRuntimeException
- [log] LogFactory.setCurrentLogFactory支持传入LogFactory类
- [core] 增加CollectionUtil.getFirst
- [core] NumberUtil中增加binaryToInt、binaryToLong、getBinaryStr
- 增加Mutable类型
- HttpUtil.downFile增加String参数方法
- 修复NumberUtil.round方法传入double某些数字无效问题
- 增加FileUtil.getType方法
- 优化整理JSON部分
- 增加ThreadUtil.getThreads、getMainThread方法
- 增强JarClassLoader
- WatchMonitor增加createAll方法
- 增加NetUtil.getLocalhost
- 优化ClassPathResource错误提示
- 增加 ArrayUtil.toArray方法
- MathUtil中的方法迁移到NumberUtil,去除MathUtil
- 针对Cache模块做包结构调整,扩展FileCache
功能特点:
日期工具通过DateUtil类,提供高度便捷的日期访问、处理和转换方式。
HTTP客户端
通过HttpUtil对HTTP客户端的封装,实现便捷的HTTP请求,并简化文件上传操作。
转换工具
通过Convert类中的相应静态方法,提供一整套的类型转换解决方案,并通过ConverterRegistry工厂类自定义转换。
配置文件工具(SETTING)
通过Setting对象,提供兼容Properties文件的更加强大的配置文件工具,用于解决中文、分组等JDK配置文件存在的诸多问题。
日志工具
Hutool的日志功能,通过抽象Log接口,提供对Slf4j、LogBack、Log4j、JDK-Logging的全面兼容支持。
JDBC工具类(DB模块)
通过db模块,提供对MySQL、Oracle等关系型数据库的JDBC封装,借助ActiveRecord思想,大大简化数据库操作。
设计哲学
Hutool的设计思想是尽量减少重复的定义,让项目中的util这个package尽量少,总的来说有如下的几个思想:1、减少代码录入。
2、常用功能组合起来,实现一个功能只用一个方法。
3、简化Java API,原来需要几个类实现的功能我也只是用一个类甚至一个方法(想想为了个线程池我得new多少类……而且名字还不好记)
4、对于null的处理我没有可以回避,而是采取“你给我null我也给你返回null”这种思想,尽量不在工具类里抛空指针异常(这思想稍猥琐啊……直接把包袱扔给调用者了,好吧,谁让你给我null了)。
5、一些固定使用的算法收集到一起,不用每次问度娘了(例如Base64算法、MD5、Sha-1,还有Hash算法)
6、借鉴Python的很多小技巧(例如列表切片,列表支持负数index),让Java更加好用。7、非常好用的ORM框架,同样借鉴Python的Django框架,以键值对的实体代替对象实体,大大降低数据库访问的难度(再也不用像Hibernate一样配置半天ORM Mapping了)。
8、极大简化了文件、日期的操作,尤其是相对路径和绝对路径问题做了非常好的封装,降低学习成本。
组件
布隆过滤缓存
克隆接口
类型转换
日期处理
数据库ORM(基于ActiveRecord思想)
基于DFA有限自动机的多个关键字查找
HTTP客户端
IO和文件
有用的一些数据结构
日志
反射代理类的简化(AOP切面实现)
Setting(一种扩展Properties的配置文件)
System(JVM和系统信息等)
WatchService的封装(文件变动监控)
XXXUtil各种有用的工具类
安装
注意Hutool只支持JDK7+,对应Android平台也并不支持。子模块
每个子模块可以被单独引入使用,修改左边名字为artifactId即可。如果想引入所有模块,可以引入hutool-all即可。
hutool-aop JDK动态代理封装,提供非IOC下的切面支持
hutool-bloomFilter 布隆过滤,提供一些Hash算法的布隆过滤
hutool-cache 缓存
hutool-core 核心,包括Bean操作、日期、各种Util等
hutool-cron 定时任务模块,提供类Crontab表达式的定时任务
hutool-crypto 加密解密模块
hutool-db JDBC封装后的数据操作,基于ActiveRecord思想
hutool-dfa 基于DFA模型的多关键字查找
hutool-extra 扩展模块,对第三方封装(模板引擎、邮件等)
hutool-http 基于HttpUrlConnection的Http客户端封装
hutool-log 自动识别日志实现的日志门面
hutool-script 脚本执行封装,例如Javascript
hutool-setting 功能更强大的Setting配置文件和Properties封装
hutool-system 系统参数调用封装(JVM信息等)
hutool-geo GeoHash封装
hutool-json JSON实现
通过Maven引入项目
RELEASE版本引用
在项目的pom.xml的dependencies中加入以下内容:
SNAPSHOT版本引用
添加SNAPSHOT支持:
引用SNAPSHOT版本的库
通过Gradle引入项目
compile 'cn.hutool:hutool-all:4.0.12'
工具包的版本可以通过 http://search.maven.org/ 搜索hutool-all找到项目。
非Maven项目
直接下载jar包
可以从http://search.maven.org/ 搜索hutool-all找到项目,点击对应版本,下面是相应的Jar包,导入即可使用。
一键直达:http://search.maven.org/#search%7Cga%7C1%7Chutool-all
如果中央库访问不便,可以访问阿里云的资源:
http://maven.aliyun.com/nexus/content/groups/public/cn/hutool/hutool-all/
自行编译安装
访问Hutool的码云主页:https://gitee.com/loolly/hutool 下载整个项目源码(v4-master或v4-dev分支都可)然后进入Hutool项目目录执行:
bin/hutool.sh install
新版更新说明
- 拆分项目- 增加 ThreadUtil.safeSleep方法
- 增加CollectionUtil.addAllIfNotContains方法
- 增加NumberUtil
- 增加hutool-cron模块
- 增加 ThreadUtil.waitForDie
- 增加DateUtil.betweenDay方法
- 增加Snowflake算法
- 对Util类加final修饰符,并添加private构造方法
- 增加 ThreadUtil.interupt方法
- Setting中对RuntimeException变为SettingRuntimeException
- [log] LogFactory.setCurrentLogFactory支持传入LogFactory类
- [core] 增加CollectionUtil.getFirst
- [core] NumberUtil中增加binaryToInt、binaryToLong、getBinaryStr
- 增加Mutable类型
- HttpUtil.downFile增加String参数方法
- 修复NumberUtil.round方法传入double某些数字无效问题
- 增加FileUtil.getType方法
- 优化整理JSON部分
- 增加ThreadUtil.getThreads、getMainThread方法
- 增强JarClassLoader
- WatchMonitor增加createAll方法
- 增加NetUtil.getLocalhost
- 优化ClassPathResource错误提示
- 增加 ArrayUtil.toArray方法
- MathUtil中的方法迁移到NumberUtil,去除MathUtil
- 针对Cache模块做包结构调整,扩展FileCache
展开更多
Hutool(Java基础工具包) v4.0.11下载地址
- 需先下载高速下载器:
- 专用下载:
- 其它下载: