Package | Description |
cn.hutool | Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。 |
cn.hutool.aop | JDK动态代理封装,提供非IOC下的切面支持 |
cn.hutool.aop.aspects | 切面实现,提供一些基本的切面实现 |
cn.hutool.aop.interceptor | 代理拦截器实现 |
cn.hutool.aop.proxy | 代理实现 |
cn.hutool.bloomfilter | 布隆过滤,提供一些Hash算法的布隆过滤 |
cn.hutool.bloomfilter.bitMap | BitMap实现 |
cn.hutool.bloomfilter.filter | 各种Hash算法的过滤器实现 |
cn.hutool.cache | 提供简易的缓存实现,此模块参考了jodd工具中的Cache模块 |
cn.hutool.cache.file | 提供针对文件的缓存实现 |
cn.hutool.cache.impl | 提供各种缓存实现 |
cn.hutool.captcha | 图片验证码实现 |
cn.hutool.captcha.generator | 验证码生成策略实现 |
cn.hutool.core | Hutool核心方法及数据结构包 |
cn.hutool.core.annotation | 注解包,提供增强型注解和注解工具类 |
cn.hutool.core.bean | Bean相关操作,包括Bean信息描述,Bean路径表达式、动态Bean、Bean工具等 |
cn.hutool.core.bean.copier | Bean拷贝实现,包括拷贝选项等 |
cn.hutool.core.bean.copier.provider | Bean值提供者方式封装 |
cn.hutool.core.builder | 建造者工具 |
用于建造特定对象或结果 |
cn.hutool.core.clone | 克隆封装 |
cn.hutool.core.codec | BaseN以及BCD编码封装 |
cn.hutool.core.collection | 集合以及Iterator封装,包括集合工具CollUtil,Iterator和Iterable工具IterUtil |
cn.hutool.core.comparator | 各种比较器(Comparator)实现和封装 |
cn.hutool.core.compiler | 运行时编译java源码,动态从字符串或外部文件加载类 |
cn.hutool.core.compress | 压缩解压封装 |
cn.hutool.core.convert | 万能类型转换器以及各种类型转换的实现类,其中Convert为转换器入口,提供各种toXXX方法和convert方法 |
cn.hutool.core.convert.impl | 各种类型转换的实现类,其都为Converter接口的实现,用于将未知的Object类型转换为指定类型 |
cn.hutool.core.date | 日期封装,日期的核心为DateTime类,DateUtil提供日期操作的入口 |
cn.hutool.core.date.chinese | 农历相关类汇总,包括农历月、天干地支、农历节日、24节气等 |
cn.hutool.core.date.format | 提供线程安全的日期格式的格式化和解析实现 |
cn.hutool.core.exceptions | 特殊异常封装,同时提供异常工具ExceptionUtil |
cn.hutool.core.getter | getXXX方法的接口和抽象实现 |
cn.hutool.core.img | 图像处理相关工具类封装 |
cn.hutool.core.img.gif | GIF处理,来自:https://github.com/rtyley/animated-gif-lib-for-java |
cn.hutool.core.io | IO相关封装和工具类,包括Inputstream和OutputStream实现类,工具包括流工具IoUtil、文件工具FileUtil和Buffer工具BufferUtil |
cn.hutool.core.io.checksum | IO校验相关库和工具 |
cn.hutool.core.io.checksum.crc16 | CRC16相关算法封装为Checksum |
cn.hutool.core.io.copy | IO流拷贝相关封装相关封装 |
cn.hutool.core.io.file | 对文件读写的封装,包括文件拷贝、文件读取、文件写出、行处理等 |
cn.hutool.core.io.file.visitor | FileVisitor功能性实现,包括递归删除、拷贝等 |
cn.hutool.core.io.resource | 针对ClassPath和文件中资源读取的封装,主要入口为工具类ResourceUtil |
cn.hutool.core.io.unit | 数据单位相关封装,包括DataUnit数据单位和DataSize数据大小 |
cn.hutool.core.io.watch | 基于JDK7+ WatchService的文件和目录监听封装,支持多级目录 |
cn.hutool.core.io.watch.watchers | 文件监听中的观察者实现类,包括延迟处理、处理链等 |
cn.hutool.core.lang | 语言特性包,包括大量便捷的数据结构,例如验证器Validator,分布式ID生成器Snowflake等 |
cn.hutool.core.lang.ansi | 命令行终端中ANSI 转义序列相关封装,如ANSI颜色等 |
cn.hutool.core.lang.caller | 调用者接口及实现。可以通过此类的方法获取调用者、多级调用者以及判断是否被调用 |
cn.hutool.core.lang.copier | 拷贝抽象实现,通过抽象拷贝,可以实现文件、流、Buffer之间的拷贝实现 |
cn.hutool.core.lang.func | 函数封装 |
接口灵感来自于ActFramework |
一个函数接口代表一个一个函数,用于包装一个函数为对象 |
在JDK8之前,Java的函数并不能作为参数传递,也不能作为返回值存在,此接口用于将一个函数包装成为一个对象,从而传递对象 |
cn.hutool.core.lang.generator | 提供生成器接口及相关封装 |
cn.hutool.core.lang.hash | 提供Hash算法的封装 |
cn.hutool.core.lang.id | 提供各种ID生成 |
cn.hutool.core.lang.intern | 规范化表示形式封装 |
所谓规范化,即当两个对象equals时,规范化的对象则可以实现== |
此包中的相关封装类似于 String#intern() |
cn.hutool.core.lang.loader | 加载器的抽象接口和实现,包括懒加载的实现等 |
cn.hutool.core.lang.mutable | 提供可变值对象的封装,用于封装int、long等不可变值,使其可变 |
cn.hutool.core.lang.reflect | 提供反射相关功能对象和类 |
cn.hutool.core.lang.tree | 提供通用树生成,特点: |
cn.hutool.core.lang.tree.parser | |
cn.hutool.core.map | Map相关封装,提供特殊Map实现以及Map工具MapUtil |
cn.hutool.core.map.multi | 多参数类型的Map实现,包括集合类型值的Map和Table |
cn.hutool.core.math | 提供数学计算相关封装,包括排列组合等,入口为MathUtil |
cn.hutool.core.net | 网络相关工具 |
cn.hutool.core.net.multipart | 文件上传封装 |
cn.hutool.core.net.url | URL相关工具 |
cn.hutool.core.stream | Java8的stream相关封装 |
cn.hutool.core.swing | Swing和awt相关封装 |
cn.hutool.core.swing.clipboard | 剪贴板相关的工具,包括剪贴板监听等 |
cn.hutool.core.text | 提供文本相关操作的封装,还包括Unicode工具UnicodeUtil |
cn.hutool.core.text.csv | 提供CSV文件读写的封装,入口为CsvUtil |
规范见:https://datatracker.ietf.org/doc/html/rfc4180 |
cn.hutool.core.text.escape | 提供各种转义和反转义实现 |
cn.hutool.core.text.finder | 文本查找实现,包括: 查找文本中的字符(正向、反向) 查找文本中的匹配字符(正向、反向) 查找文本中的字符串(正向、反向) 查找文本中匹配正则的字符串(正向) |
cn.hutool.core.text.replacer | 文本替换类抽象及实现 |
cn.hutool.core.text.split | |
cn.hutool.core.thread | 提供线程及高并发封装,入口为ThreadUtil |
cn.hutool.core.thread.lock | 锁的实现 |
cn.hutool.core.thread.threadlocal | ThreadLocal相关封装 |
cn.hutool.core.util | 提供各种工具方法,按照归类入口为XXXUtil,如字符串工具StrUtil等 |
cn.hutool.cron | 定时任务模块,提供类Crontab表达式的定时任务,实现参考了Cron4j,同时可以支持秒级别的定时任务定义和年的定义(同时兼容Crontab、Cron4j、Quartz表达式) |
定时任务模块由三部分组成:?Scheduler?定时任务调度器,用于整体管理任务的增删、启停和触发运行。?Task?定时任务实现,用于定义具体的任务?CronPattern?定时任务表达式,用于定义任务触发时间 同时,提供了CronUtil工具类,维护一个全局的Scheduler。 |
cn.hutool.cron.listener | 定时任务执行监听接口及部分实现 |
cn.hutool.cron.pattern | 定时任务表达式解析,核心为CronPattern |
cn.hutool.cron.pattern.matcher | 定时任务表达式匹配器,内部使用 |
单一表达式使用PatternMatcher表示 |
PatternMatcher由7个PartMatcher组成, 分别表示定时任务表达式中的7个位置: |
cn.hutool.cron.pattern.parser | 定时任务表达式解析器,内部使用 |
cn.hutool.cron.task | 定时任务中作业的抽象封装和实现,包括Runnable实现和反射实现 |
Task表示一个具体的任务,当满足时间匹配要求时,会执行Task.execute()方法。 |
cn.hutool.cron.timingwheel | 时间轮实现,重写了kafka的TimingWheel |
时间轮一般会实现成一个环形结构,类似一个时钟,分为很多槽,一个槽代表一个时间间隔,每个槽使用双向链表存储定时任务。指针周期性地跳动,跳动到一个槽位,就执行该槽位的定时任务。 |
cn.hutool.crypto | 加密解密模块,实现了对JDK中加密解密算法的封装,入口为SecureUtil,实现了: |
cn.hutool.crypto.asymmetric | 非对称加密的实现,包括RSA等 |
cn.hutool.crypto.digest | 摘要加密算法实现,入口为DigestUtil |
cn.hutool.crypto.digest.mac | HMAC,全称为“Hash Message Authentication Code”,中文名“散列消息鉴别码” |
主要是利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出。 |
一般的,消息鉴别码用于验证传输于两个共 同享有一个密钥的单位之间的消息。 |
HMAC 可以与任何迭代散列函数捆绑使用。MD5 和 SHA-1 就是这种散列函数。HMAC 还可以使用一个用于计算和确认消息鉴别值的密钥。 |
cn.hutool.crypto.digest.otp | OTP 是 One-Time Password的简写,表示一次性密码。 |
cn.hutool.crypto.symmetric | 对称加密算法实现,包括AES、DES、DESede等 |
cn.hutool.crypto.symmetric.fpe | |
cn.hutool.db | Hutool-db是一个在JDBC基础上封装的数据库操作工具类,通过包装,使用ActiveRecord思想操作数据库。 |
在Hutool-db中,使用Entity(本质上是个Map)代替Bean来使数据库操作更加灵活,同时提供Bean和Entity的转换提供传统ORM的兼容支持。 |
cn.hutool.db.dialect | 数据库方言封装,包括数据库方言以及方言自动识别等 |
cn.hutool.db.dialect.impl | 数据库方言实现,包括MySQL、Oracle、PostgreSQL、Sqlite3、H2、SqlServer2012等 |
cn.hutool.db.ds | 数据源封装,对各类数据库连接池的封装 |
cn.hutool.db.ds.bee | BeeCP封装 见:https://github.com/Chris2018998/BeeCP |
cn.hutool.db.ds.c3p0 | C3P0封装 |
cn.hutool.db.ds.dbcp | DBCP封装 |
cn.hutool.db.ds.druid | Druid封装 |
cn.hutool.db.ds.hikari | Hikari封装 |
cn.hutool.db.ds.jndi | JNDI封装 |
cn.hutool.db.ds.pooled | Hutool对连接池的简单实现 |
cn.hutool.db.ds.simple | JDBC中DriverManager简易封装 |
cn.hutool.db.ds.tomcat | Tomcat-Pool封装 |
cn.hutool.db.handler | JDBC结果集(ResultSet)转换封装,通过实现RsHandler接口,将ResultSet转换为我们想要的数据类型 |
cn.hutool.db.meta | JDBC数据表元数据信息封装,包括表结构、列信息的封装,入口为MetaUtil |
cn.hutool.db.nosql | NoSQL封装,包括Redis和MongoDB等数据库操作的封装 |
cn.hutool.db.nosql.mongo | MongoDB数据库操作的封装 |
cn.hutool.db.nosql.redis | Redis(Jedis)数据库操作的封装 |
cn.hutool.db.sql | SQL语句和Statement构建封装 |
cn.hutool.db.transaction | 事务相关类和操作 |
cn.hutool.dfa | DFA全称为:Deterministic Finite Automaton,即确定有穷自动机。 |
解释起来原理其实也不难,就是用所有关键字构造一棵树,然后用正文遍历这棵树,遍历到叶子节点即表示文章中存在这个关键字。 |
我们暂且忽略构建关键词树的时间,每次查找正文只需要O(n)复杂度就可以搞定。 |
cn.hutool.extra | 由于Hutool的原则是不依赖于其它配置文件,但是很多时候我们需要针对第三方非常棒的库做一些工具类化的支持,因此Hutoo-extra包主要用于支持第三方库的工具类支持。 |
cn.hutool.extra.cglib | Cglib库方法封装 |
cn.hutool.extra.compress | 基于commons-compress的压缩解压封装 |
支持包括:gzip, bzip2, xz, lzma, Pack200, DEFLATE, Brotli, DEFLATE64, ZStandard and Z, the archiver formats are 7z, |
ar, arj, cpio, dump, tar and zip等格式。 |
cn.hutool.extra.compress.archiver | 基于commons-compress的打包(压缩)封装 |
cn.hutool.extra.compress.extractor | 基于commons-compress的解包(解压缩)封装 |
cn.hutool.extra.emoji | 基于https://github.com/vdurmont/emoji-java的Emoji表情工具类 |
cn.hutool.extra.expression | 表达式语言引擎封装 |
cn.hutool.extra.expression.engine | 表达式语言引擎封装 |
cn.hutool.extra.expression.engine.aviator | Aviator引擎封装,见:https://github.com/killme2008/aviatorscript |
cn.hutool.extra.expression.engine.jexl | Jexl3引擎封装,见:https://github.com/apache/commons-jexl |
cn.hutool.extra.expression.engine.jfireel | JfireEL引擎封装 |
见:https://gitee.com/eric_ds/jfireEL |
cn.hutool.extra.expression.engine.mvel | MVEL (MVFLEX Expression Language)引擎封装 |
见:https://github.com/mvel/mvel |
cn.hutool.extra.expression.engine.rhino | rhino引擎封装 |
见:https://github.com/mozilla/rhino |
cn.hutool.extra.expression.engine.spel | Spring-Expression引擎封装 |
见:https://github.com/spring-projects/spring-framework/tree/master/spring-expression |
cn.hutool.extra.ftp | 基于Apache Commons Net封装的FTP工具 |
cn.hutool.extra.mail | 邮件封装,基于javax-mail库,入口为MailUtil |
cn.hutool.extra.pinyin | 拼音工具封装,入口为PinyinUtil |
cn.hutool.extra.pinyin.engine | 拼音具体实现 |
cn.hutool.extra.pinyin.engine.bopomofo4j | 封装了Bopomofo4j的引擎。 |
cn.hutool.extra.pinyin.engine.houbbpinyin | 封装了 Pinyin 的引擎。 |
cn.hutool.extra.pinyin.engine.jpinyin | 封装了Jpinyin的引擎。 |
cn.hutool.extra.pinyin.engine.pinyin4j | 封装了Pinyin4j的引擎。 |
cn.hutool.extra.pinyin.engine.tinypinyin | 封装了TinyPinyin的引擎。 |
cn.hutool.extra.qrcode | 二维码封装,基于zxing库,入口为QrCodeUtil |
cn.hutool.extra.servlet | Servlet封装,包括Servlet参数获取、文件上传、Response写出等,入口为ServletUtil |
cn.hutool.extra.spring | Spring相关工具封装 |
cn.hutool.extra.ssh | Jsch封装,包括端口映射、SFTP封装等,入口为JschUtil |
cn.hutool.extra.template | 第三方模板引擎封装,提供统一的接口用于适配第三方模板引擎 |
cn.hutool.extra.template.engine | 第三方模板引擎实现 |
cn.hutool.extra.template.engine.beetl | Beetl实现,模板引擎介绍见:http://ibeetl.com/ |
cn.hutool.extra.template.engine.enjoy | Jfinal家的Enjoy模板引擎实现,见:https://jfinal.com/doc/6-1 |
cn.hutool.extra.template.engine.freemarker | Freemarker实现 |
见:https://freemarker.apache.org/ |
cn.hutool.extra.template.engine.jetbrick | jetbrick-template实现,模板引擎介绍见:https://github.com/subchen/jetbrick-template-2x |
cn.hutool.extra.template.engine.jetbrick.loader | jetbrick-template实现,特殊资源加载器 |
模板引擎介绍见:https://github.com/subchen/jetbrick-template-2x |
cn.hutool.extra.template.engine.rythm | Rythm实现,见:http://www.rythmengine.org/ |
cn.hutool.extra.template.engine.thymeleaf | Thymeleaf实现,见:https://www.thymeleaf.org/ |
cn.hutool.extra.template.engine.velocity | Velocity实现 |
见:http://velocity.apache.org/ |
cn.hutool.extra.template.engine.wit | Wit实现,见:http://zqq90.github.io/webit-script/ |
cn.hutool.extra.tokenizer | 中文分词封装 |
通过定义统一接口,适配第三方分词引擎 |
cn.hutool.extra.tokenizer.engine | 第三方分词引擎实现 |
cn.hutool.extra.tokenizer.engine.analysis | Lucene-analysis分词抽象封装 |
项目地址:https://github.com/apache/lucene-solr/tree/master/lucene/analysis |
cn.hutool.extra.tokenizer.engine.ansj | Ansj分词实现 |
项目地址:https://github.com/NLPchina/ansj_seg |
cn.hutool.extra.tokenizer.engine.hanlp | HanLP分词引擎实现 |
项目地址:https://github.com/hankcs/HanLP |
cn.hutool.extra.tokenizer.engine.ikanalyzer | IKAnalyzer分词引擎实现 |
项目地址:https://github.com/yozhao/IKAnalyzer |
cn.hutool.extra.tokenizer.engine.jcseg | Jcseg分词引擎实现 |
项目地址:https://gitee.com/lionsoul/jcseg |
cn.hutool.extra.tokenizer.engine.jieba | Jieba分词引擎实现 |
项目地址:https://github.com/huaban/jieba-analysis |
cn.hutool.extra.tokenizer.engine.mmseg | mmseg4j分词引擎实现 |
项目地址:https://github.com/chenlb/mmseg4j-core |
cn.hutool.extra.tokenizer.engine.mynlp | MYNLP 中文NLP工具包分词实现 |
项目地址:https://github.com/mayabot/mynlp/ |
cn.hutool.extra.tokenizer.engine.word | Word分词引擎实现 |
项目地址:https://github.com/ysc/word |
cn.hutool.extra.validation | 基于JSR-380标准的校验工具类,封装了javax.validation的API |
cn.hutool.http | Hutool-http针对JDK的HttpUrlConnection做一层封装,简化了HTTPS请求、文件上传、Cookie记忆等操作,使Http请求变得无比简单。 |
cn.hutool.http.body | 请求体封装实现 |
cn.hutool.http.cookie | 自定义Cookie |
cn.hutool.http.server | Http服务器封装 |
cn.hutool.http.server.action | HttpServer 封装 |
cn.hutool.http.server.filter | Filter 实现包装 |
cn.hutool.http.server.handler | HttpHandler 实现包装 |
cn.hutool.http.ssl | SSL封装 |
cn.hutool.http.useragent | User-Agent解析 |
cn.hutool.http.webservice | Webservice客户端封装实现 |
cn.hutool.json | JSON封装,基于json.org官方库改造 |
cn.hutool.json.serialize | JSON自定义序列化和反序列化接口和默认实现 |
cn.hutool.json.xml | JSON与XML相互转换封装,基于json.org官方库改造 |
cn.hutool.jwt | JSON Web Token (JWT)封装 |
cn.hutool.jwt.signers | JWT签名封装 |
cn.hutool.log | Hutool-log只是一个日志的通用门面,功能类似于Slf4j。 |
根据加入ClassPath中的jar包动态检测日志实现的方式,使日志使用更加便利灵活。 |
cn.hutool.log.dialect | 第三方日志库的实现封装 |
cn.hutool.log.dialect.commons | Apache-Commons-Logging日志库的实现封装 |
cn.hutool.log.dialect.console | 控制台输出的实现封装 |
cn.hutool.log.dialect.jboss | jboss-logging实现 |
cn.hutool.log.dialect.jdk | JDK-Logging的实现封装 |
cn.hutool.log.dialect.log4j | Log4j的实现封装 |
cn.hutool.log.dialect.log4j2 | Log4j2的实现封装 |
cn.hutool.log.dialect.logtube | LogTube的实现封装 |
cn.hutool.log.dialect.slf4j | Slf4j的实现封装 |
cn.hutool.log.dialect.tinylog | tinylog的实现封装 |
封装包括TinyLog和TinyLog2 |
cn.hutool.log.level | 按照日志级别定义的日志打印接口定义 |
cn.hutool.poi | POI封装实现 |
Java针对MS Office的操作的库屈指可数,比较有名的就是Apache的POI库。 |
这个库异常强大,但是使用起来也并不容易。Hutool针对POI封装一些常用工具,使Java操作Excel等文件变得异常简单。 |
cn.hutool.poi.excel | POI中对Excel读写的封装,入口为ExcelUtil |
cn.hutool.poi.excel.cell | Excel中单元格相关类,入口为CellUtil |
cn.hutool.poi.excel.cell.setters | Excel中单元格设置相关类,一些CellSetter的实现类 |
cn.hutool.poi.excel.cell.values | |
cn.hutool.poi.excel.editors | 单元格值编辑器,内部使用 |
cn.hutool.poi.excel.reader | 数据读取接口及实现,此包中定义了SheetReader,通过实现此接口,实现sheet中的数据读取为不同类型。 |
cn.hutool.poi.excel.sax | Sax方式操作Excel方式的封装 |
cn.hutool.poi.excel.sax.handler | Sax读取中行处理器的定义和实现 |
cn.hutool.poi.excel.style | Excel样式封装,入口为:StyleUtil |
cn.hutool.poi.exceptions | POI相关异常 |
cn.hutool.poi.ofd | 开放版式文档(Open Fixed-layout Document )封装,基于ofdrw(https://gitee.com/Trisia/ofdrw) |
cn.hutool.poi.word | POI中对Word操作封装 |
cn.hutool.script | Script模块主要针对Java的javax.script封装,可以运行Javascript脚本。 |
cn.hutool.setting | Setting模块主要针对Properties文件读写做封装,同时定义一套自己的配置文件规范,实现兼容性良好的配置工具。 |
cn.hutool.setting.dialect | 配置文件实现封装,例如Properties封装Props |
cn.hutool.setting.profile | 配置环境封装,例如Profile可以自定义不同环境下的配置文件位置 |
cn.hutool.setting.yaml | YAML文件的读写封装,基于snakeyaml |
cn.hutool.socket | Socket套接字相关工具类封装 |
cn.hutool.socket.aio | AIO相关封装 |
cn.hutool.socket.nio | NIO相关封装 |
cn.hutool.socket.protocol | 消息协议接口及实现 |
cn.hutool.system | System模块主要获取系统、JVM、内存、CPU等信息,以便动态监测系统状态 |
cn.hutool.system.oshi | Oshi库封装 |
https://github.com/oshi/oshi |