Hutool-超级好用的Java工具类库

官方网址:Hutool

📚简介

Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。

Hutool中的工具方法来自每个用户的精雕细琢,它涵盖了Java开发底层代码中的方方面面,它既是大型项目开发中解决小问题的利器,也是小型项目中的效率担当;

Hutool是项目中“util”包友好的替代,它节省了开发人员对项目中公用类和公用工具方法的封装时间,使开发专注于业务,同时可以最大限度的避免封装不完善带来的bug。

#🎁Hutool名称的由来

Hutool = Hu + tool,是原公司项目底层代码剥离后的开源库,“Hu”是公司名称的表示,tool表示工具。Hutool谐音“糊涂”,一方面简洁易懂,一方面寓意“难得糊涂”。

#🍺Hutool如何改变我们的coding方式

Hutool的目标是使用一个工具方法代替一段复杂代码,从而最大限度的避免“复制粘贴”代码的问题,彻底改变我们写代码的方式。

以计算MD5为例:

  • 👴【以前】打开搜索引擎 -> 搜“Java MD5加密” -> 打开某篇博客-> 复制粘贴 -> 改改好用
  • 👦【现在】引入Hutool -> SecureUtil.md5()

Hutool的存在就是为了减少代码搜索成本,避免网络上参差不齐的代码出现导致的bug。


#🛠️包含组件

一个Java基础工具类,对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装,组成各种Util工具类,同时提供以下组件:

模块介绍
hutool-aopJDK动态代理封装,提供非IOC下的切面支持
hutool-bloomFilter布隆过滤,提供一些Hash算法的布隆过滤
hutool-cache简单缓存实现
hutool-core核心,包括Bean操作、日期、各种Util等
hutool-cron定时任务模块,提供类Crontab表达式的定时任务
hutool-crypto加密解密模块,提供对称、非对称和摘要算法封装
hutool-dbJDBC封装后的数据操作,基于ActiveRecord思想
hutool-dfa基于DFA模型的多关键字查找
hutool-extra扩展模块,对第三方封装(模板引擎、邮件、Servlet、二维码、Emoji、FTP、分词等)
hutool-http基于HttpUrlConnection的Http客户端封装
hutool-log自动识别日志实现的日志门面
hutool-script脚本执行封装,例如Javascript
hutool-setting功能更强大的Setting配置文件和Properties封装
hutool-system系统参数调用封装(JVM信息等)
hutool-jsonJSON实现
hutool-captcha图片验证码实现
hutool-poi针对POI中Excel和Word的封装
hutool-socket基于Java的NIO和AIO的Socket封装
hutool-jwtJSON Web Token (JWT)封装实现

#引入

Hutool-all是一个Hutool的集成打包产品,由于考虑到“懒人”用户及分不清各个模块作用的用户,“无脑”引入hutool-all模块是快速开始和深入应用的最佳方式。

起初Hutool只提供了两种引入方式:

  1. 引入hutool-all以便使用所有工具类功能

  2. 引入hutool-xxx单独模块使用

后来t-io的作者谭总提出是否可以引入一个bom包,一次性引入所有子模块,然后将不用的模块排除掉。起初我是排斥的,认为这种方式用处不大(其实是我不会写……)

再后来接触了Maven的这部分,于是有了hutool-bom模块!

当然这个模块的存在一直有争议,因为真正的bom包是一个模块管理包,正确的打开方式是可以引入,再引入需要的模块(只是不用重复版本号而已),Hutool中"排除"方式就变得非常异类,真是让人头大。

当然转机来自于一个issue:BOM should be declared in dependencyManagement for import(opens new window)

@JasonMing 大神给了一个非常棒的方案,可以两者兼得,于是纠结症的我终于释怀了,现在的bom模块变得异常灵活!

整个bom模块只由一个pom.xml组成,同时提供了dependencyManagementdependencies两种声明。于是我们就可以针对不同需要完成引入。

#import方式

如果你想像Spring-Boot一样引入Hutool,再由子模块决定用到哪些模块,你可以在父模块中加入:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-bom</artifactId>
            <version>${hutool.version}</version>
            <type>pom</type>
            <!-- 注意这里是import -->
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

在子模块中就可以引入自己需要的模块了:

<dependencies>
    <dependency>
        <groupId>cn.hutool</groupId>
        <artifactId>hutool-http</artifactId>
    </dependency>
</dependencies>

使用import的方式,只会引入hutool-bom内的dependencyManagement的配置,其它配置在这个引用方式下完全不起作用。

#exclude方式

如果你引入的模块比较多,但是某几个模块没用,你可以:

<dependencies>
    <dependency>
        <groupId>cn.hutool</groupId>
        <artifactId>hutool-bom</artifactId>
        <version>${hutool.version}</version>
        <!-- 加不加这句都能跑,区别只有是否告警  -->
        <type>pom</type>
        <exclusions>
            <exclusion>
                    <groupId>cn.hutool</groupId>
                    <artifactId>hutool-system</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
</dependencies>

这个配置会传递依赖hutool-bom内所有dependencies的内容,当前hutool-bom内的dependencies全部设置了version,就意味着在maven resolve的时候hutool-bom内就算存在dependencyManagement也不会产生任何作用。


#📝其它文档

📙参考API(opens new window)

🎬视频介绍(opens new window)


#🪙支持Hutool

#💳捐赠

如果你觉得Hutool不错,可以捐赠请维护者吃包辣条~,在此表示感谢^_^。

Gitee上捐赠(opens new window)

捐赠给Dromara组织(opens new window)


#📦安装

#🍊Maven

在项目的pom.xml的dependencies中加入以下内容:


<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.8.26</version>
</dependency>

#🍐Gradle

implementation 'cn.hutool:hutool-all:5.8.26'

#📥下载jar

点击以下链接,下载hutool-all-X.X.X.jar即可:

🔔️注意 Hutool 5.x支持JDK8+,对Android平台没有测试,不能保证所有工具类或工具方法可用。 如果你的项目使用JDK7,请使用Hutool 4.x版本(不再更新)

#🚽编译安装

访问Hutool的Gitee主页:https://gitee.com/dromara/hutool (opens new window)下载整个项目源码(v5-master或v5-dev分支都可)然后进入Hutool项目目录执行:

./hutool.sh install

然后就可以使用Maven引入了。


#🏗️添砖加瓦

#🎋分支说明

Hutool的源码分为两个分支,功能如下:

分支作用
v5-master主分支,release版本使用的分支,与中央库提交的jar一致,不接收任何pr或修改
v5-dev开发分支,默认为下个版本的SNAPSHOT版本,接受修改或pr

  • 28
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Java使用Hutool SFTP可以实现与远程服务器进行文件传输的功能。Hutool是一个Java工具,提供了丰富的功能类,其中包括了对SFTP操作的支持。 在使用Hutool SFTP时,首先需要导入相关的依赖。可以将以下依赖添加到项目的pom.xml文件中: ```xml <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.7.10</version> </dependency> ``` 接下来,需要创建一个Sftp类的实例对象,并通过`setHost`、`setPort`、`setUser`和`setPass`方法设置连接远程服务器所需的主机名、端口、用户名和密码。然后,使用`connect`方法建立与服务器的连接。 建立连接后,就可以使用Hutool SFTP提供的方法进行文件传输了。例如,可以使用`upload`方法将本地文件上传到远程服务器,方法签名如下: ```java public void upload(String src, String dest) ``` 其中,`src`参数表示本地文件的路径,`dest`参数表示远程服务器上保存文件的路径。 另外,还可以使用`download`方法从远程服务器下载文件到本地。方法签名如下: ```java public void download(String src, String dest) ``` 其中,`src`参数表示远程服务器上文件的路径,`dest`参数表示下载文件保存的本地路径。 除了上传和下载文件,Hutool SFTP还支持其他一些操作,如创建目录、修改文件权限等。 使用Hutool SFTP进行文件传输时,还需要注意及时关闭连接,以释放资源。可以使用`close`方法关闭与服务器的连接。 总之,Hutool SFTP提供了简单方便的API,可以轻松地实现Java与远程服务器之间的文件传输功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值