当然,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位表达式都兼容。可以说是很棒了。
该类库的其他工具类我就不一一介绍了,感兴趣的读者可以自己去官网看一下,我觉得最吸引人的还是非常全的中文文档和API文档,建议大家去阅读一下,相信你也会喜欢上这个国产类库。
我为什么推荐大家都去尝试一下这个类库呢?倒不是说推荐大家一定去使用,我们可以去体验一下该工具类是否真的可以简化我们的编码。这个工具类库一开始,其实就是项目中普通的 Util 工具类,慢慢丰富,最后衍生出一个类库,里面的大部分源码我相信大部分程序员都可以看得懂,也是一个很好的学习机会。再说了,我的哪一篇文章让你失望过?(得瑟脸)
读完这篇文章,相信你会转发给更多的人。
END