一款提高开发效率的工具类--Hutool

​01前言

    最近在开发去水印小程序,需要在后端请求解析视频的链接,其中一些请求需要加入header头,或者获取重定向的链接,还有对请求数据json的解析。这部分操作虽然不复杂,但是自己再封装一个工具类就太重复制造轮子了,所以找了一个黑科技工具类--hutool工具类。

02我的使用

这里先看一下我使用这个工具类干了点啥吧!

首先,是http请求

//创建header头

HashMap headers = MapUtil.newHashMap();

headers.put("User-Agent",

"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1");

headers.put("Referer", url);

headers.put("Accept-Encoding", "gzip, deflate, br");

headers.put("Accept-Language", "zh-CN,zh;q=0.9");

headers.put("Pragma", "no-cache");

headers.put("Cache-Control", "no-cache");

headers.put("Upgrade-Insecure-Requests", "1");

//http请求

HttpResponse execute = HttpUtil.createGet(url).addHeaders(headers).execute();

//获取返回code

if (execute.getStatus() != 302) {

return result;

}

//获取重定向地址

String redirectUrl = execute.header("Location");

//处理地址

String requestUrl = redirectUrl.split("&jsonp=")[1].split("&")[0];

requestUrl = "http:" + URLDecoder.decode(requestUrl, "utf-8");

//第二次请求

String body = HttpUtil.createGet(requestUrl).execute().body();

看上面的代码,是不是感觉hutool在http请求上很无敌啊。

其次是对json的处理

String body = HttpUtil.createGet(reqUrl).addHeaders(headers).execute().body();

JSON res = JSONUtil.parse(body);

String imageUrl = JSONUtil.getByPath(res, "data.video.cover").toString();

String videoUrl = JSONUtil.getByPath(res, "data.video.url.0").toString();

在json的处理上也是黑科技,不用一个个get 直接点点就出来了

03hutool详细介绍

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

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

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

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

    GitHub地址:https://github.com/looly/hutool/issues

    码云地址:https://gitee.com/loolly/hutool/issues

包含组件

一个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的封装

hutool-socket基于Java的NIO和AIO的Socket封装

可以根据需求对每个模块单独引入,也可以通过引入hutool-all方式引入所有模块。

04具体使用

Maven

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



cn.hutool

hutool-all

5.2.5

Gradle

compile 'cn.hutool:hutool-all:5.2.5'

非Maven项目

下载hutool-all-X.X.X.jar即可:

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

05最后

一般的公司是禁止使用这样的工具类的。但是在你的个人项目下可以集合该工具类,既方便又实用。当然这个工具类很多思想是值得我们去学习的,可以抽出hutool的你觉得要用的代码放到平时的公司代码里也是高大上的啊!

最后感谢hutool的开发者给我们提供了这么强大的一个工具类

 

一款提高开发效率的工具类--Hutool_第1张图片

你可能感兴趣的:(工具)