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

​01前言

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

02我的使用

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

首先,是http请求

//创建header头
HashMap<String, String> 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地址:looly/hutool

码云地址:Issues · Hutool/hutool - 码云 Gitee.com

包含组件

一个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、二维码、Emoji、FTP、分词等)

hutool-http 基于HttpUrlConnection的Http客户端封装

hutool-log 自动识别日志实现的日志门面

hutool-script 脚本执行封装,例如Javascript

hutool-setting 功能更强大的Setting配置文件和Properties封装

hutool-system 系统参数调用封装(JVM信息等)

hutool-json JSON实现

hutool-captcha 图片验证码实现

hutool-poi 针对POI中Excel的封装

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

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

04具体使用

Maven

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

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

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的开发者给我们提供了这么强大的一个工具类

d433c9117d4bb00317f4965acab5240c.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值