推荐给Java程序员的强大的国产工具类库!文末附学习资料

今天给大家强烈推荐一个很棒的国产工具类库:Hutool。可能很多朋友还不知道这个国产工具类库,今天糖糖就来给大家介绍一下Hutool,Hutool是一个Java工具包类库,对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装,组成各种Util工具类。

官网地址:https://www.hutool.cn/

Hutool是Hu + tool的自造词,前者是作者致敬他的“前任公司”,后者为工具之意,谐音“糊涂”,寓意追求“万事都作糊涂观,无所谓失,无所谓得”的境界。看来写这个类库的作者(不止一个)也是文艺青年啊。

Hutool可以帮助我们简化每一行代码,减少每一个方法,让Java语言也可以“甜甜的”。所以很多人称之为:小甜甜。

我们使用该工具类,只需要引入它的依赖即可。

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

可能很多国内程序员都不喜欢看官方文档,因为基本上都是英文的,其实我还是鼓励大家去看英文文档的。但这个工具类的参考文档和API文档全是中文的,中文的,中文的,可以说能满足很大一部分开发人员的需求了。

先举一个官方提供的例子,模拟一下表单提交,来一起感受一下 Hutool 的便捷。

public class Demo {
public static void main(String[] args) {
File file = new File("D:\\face.jpg");
// 第一种方式:自定义构建表单
HttpRequest request = HttpRequest
.post("http://ip:port/xxxx")
.form("file", file)
.form("fileType", "jpg");
HttpResponse response = request.execute();
System.out.println(response.body());
// 第二种方式:使用统一表单,Http模块会自动识别参数类型,并完成上传
HashMap<String, Object> paramMap = new HashMap<>();
paramMap.put("author", "倪升武");
paramMap.put("wechat", "程序员私房菜");
String result = HttpUtil.post("http://ip:port/xxxx", paramMap);
System.out.println(result);
}
}

当然,Hutool 还有其他很多工具,比如对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装,组成各种Util工具类,同时也提供以下组件:



上文导入的依赖是 hutool-all,意味导入所有的模块,当然,我们也可以根据实际需要对上图中的每个模块进行单独的依赖导入。由于篇幅原因,我简单介绍其中两个模块,其他的模块大家可以去看看官方文档,去尝试一下,还是有很多东西值得我们去学习的。

HtmlUtil(HTML工具类)

我是蛮喜欢这个工具类的,用的最多的就是 HtmlUtil.encode,可以将一些字符转化为安全字符,防止xss注入和SQL注入,比如我之前做网站的时候就用到了这个来处理评论的提交。

comment.setContent(HtmlUtil.encode(content));

它会转义文本中的HTML字符为安全的字符,这样比较安全。另外,HtmlUtil 还提供了以下方法,有兴趣的朋友可以去试一下。



CronUtil(定时任务)

我们使用 CronUtil 时,只需要在 src/main/resources/config 下放入 cron.setting 文件(默认是这个路径的这个文件),然后在文件中放入定时规则,如:

[com.example.hutool.cron]
TimerTest.runTask = */2 * * * * ?

这表示:每隔 2 秒钟执行一遍 com.example.hutool.cron 包下的 TimerTest 类中的 runTask 方法。这就很方便了,我在项目启动时就把定时器打开即可,假如你是 Spring Boot 工程,就可以这么做:

/**
* 项目初始化配置
* @author shengwu ni
* @date 2018-12-06
*/
@Component
public class InitConfig {
private static final Logger LOGGER = LoggerFactory.getLogger(InitConfig.class);
@PostConstruct
public void initTimer() {
LOGGER.info("项目启动,开启Hutool定时任务……");
CronUtil.setMatchSecond(true);
CronUtil.start();
}
}

这样就会每隔 2 秒中去执行一下目标方法。代码中的 setMatchSecond(true) 是设置支持秒级别定时任务,这么做是为了兼容 Quartz 表达式,5位表达式、6位表达式都兼容。可以说是很棒了。

这个强大的国产工具类库关于其他的工具类就不在这里做一一的详细介绍了,有兴趣的读者可以去官网看一下,相信你会喜欢上它的!

最后,看到文章这里的小伙伴恭喜你,这里有份关于Java的资料学习免费送你

领取方式:关注糖糖,后台私信“学习”马上获取!!

发表评论
留言与评论(共有 0 条评论)
   
验证码:

相关文章

推荐文章

'); })();