全新项目主页:http://www.hutool.cn/
Hutool交�?QQ群:== 537116831 ==
功�?�
一个Java基础工具类,对文件�?�?�?加密解密�?转�?�?正�?��?线程�?XML等JDK方法进行�?装,组�??�?�种Util工具类,�?�时�?供以下组件:
- 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 扩展模块,对第三方�?装�?模板引擎�?邮件�?Servlet�?二维�?等)
- hutool-http 基于HttpUrlConnection的Http客�?�端�?装
- hutool-log 自动识�?�日志实现的日志门面
- hutool-script 脚本执行�?装,例如Javascript
- hutool-setting 功�?�更强大的Setting配置文件和Properties�?装
- hutool-system 系统参数�?用�?装�?JVM信�?�等)
- hutool-json JSON实现
- hutool-captcha 图片验�?�?实现
简介
Hutool�?�Hu + tool的自造词,前者致敬�?�的“前任公司”,�?�者为工具之意,�?音“糊涂”,寓意追求“万事�?�作糊涂观,无所谓失,无所谓得”的�?界。
Hutool�?�一个Java工具包,也只�?�一个工具包,�?帮助�?�们简化每一行代�?,减少每一个方法,让Java语言也可以“甜甜的”。Hutool最�?��?��?�项目中“util”包的一个整�?�,�?�来慢慢积累并加入更多非业务相关功�?�,并广泛学习其�?开�?项目精髓,经过自己整�?�修改,最�?形�??丰富的开�?工具集。
设计哲学
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也�?�可被替换的。这种无侵入性,让使用者可以更加放�?的在项目中引入,也保�?了与其�?框架完美的兼容。
安装
Maven
在项目的pom.xml的dependencies中加入以下内容:
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>4.0.12</version>
</dependency>Gradle
compile 'cn.hutool:hutool-all:4.0.12'
注:工具包的�?本可以通过 http://search.maven.org/ �?�索hutool-all找�?�项目。
非Maven项目
可以从http://search.maven.org/ �?�索hutool all找�?�项目,点击对应�?本,下面�?�相应的Jar包,导入即可使用。
http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22cn.hutool%22%20AND%20a%3A%22hutool-all%22
点击链接�?�点选择对应�?本,点击�?�表尾�?�的“Download”下载jar�?API文档�?�?�?
如果中央库访问不便,可以访问�?�里云的资�?:
http://maven.aliyun.com/nexus/content/groups/public/cn/hutool/hutool-all/
文档
请移步: Hutool Wiki@OSC

Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.

