Java Shell
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.

README.md

?面

Version License JDK 1.7

全新项目主页: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

?本?更

CHANGELOG.md