最近博主看到了一款小而全的 java 工具类库:hutool,github 已经接近 25k star 了,想必一定很优秀,现在推荐给大家,很多轮子不要再造了!
hutool 是什么
hutool 是一个 java 工具包类库,它可以对文件、流、加密解密、转码、正则、线程、xml等jdk方法进行封装,组成各种 utils 工具类。 hutool 即是 hu(谐音“糊涂”) + tool,前者致敬作者 “前任公司”,后者为工具之意,谐音“糊涂”,寓意追求“万事都作糊涂观,无所谓失,无所谓得”的境界。
hutool如何改变我们的coding方式
hutool的目标是使用一个工具方法代替一段复杂代码,从而最大限度的避免“复制粘贴”代码的问题,彻底改变我们写代码的方式。像这样的项目,咱们公众号还推荐过很多,可以关注公众号 java后端,回复 666 下载。
功能 一个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 扩展模块,对第三方封装(模板引擎、邮件等) hutool-http 基于httpurlconnection的http客户端封装 hutool-log 自动识别日志实现的日志门面 hutool-script 脚本执行封装,例如javascript hutool-setting 功能更强大的setting配置文件和properties封装 hutool-system 系统参数调用封装(jvm信息等) hutool-json json实现 hutool-captcha 图片验证码实现 简单测试 这两天使用hutool把halo里面的一些代码给替换掉了,不得不说,用起来十分顺心,下面简单介绍一下我用到的一些hutool的工具类。 secureutil(加密解密工具) 主要是在登录的时候还有修改密码的时候用到的,因为数据库里面的密码是md5加密处理的,所以登录的时候需要先加密之后再到数据库进行查询,以前,打开搜索引擎 -> 搜“java md5加密” -> 打开某篇博客-> 复制粘贴 -> 改改好用而使用hutool的话,只需要调用secureutil中的md5方法就可以了。user = userservice.userloginbyname(loginname,secureutil.md5(loginpwd)); htmlutil(html工具类) 这个工具类就比较厉害了,不过我在halo当中用得最多的还是htmlutil.encode,可以将一些字符转化为安全字符,防止xss注入和sql注入,比如下面的评论提交。comment.setcommentauthor(htmlutil.encode(comment.getcommentauthor())); 这就是防止有小坏蛋故意写一些可执行的js代码,然后提交评论,在后台面板就会执行这一段代码,比较危险,使用encode方法就可以将标签给转化成,这样转化之后,js代码就不会执行了。另外,htmlutil还提供了以下方法,有兴趣的可以去试一下。 htmlutil.restoreescaped 还原被转义的html特殊字符 htmlutil.encode 转义文本中的html字符为安全的字符 htmlutil.cleanhtmltag 清除所有html标签 htmlutil.removehtmltag 清除指定html标签和被标签包围的内容 htmlutil.unwraphtmltag 清除指定html标签,不包括内容 htmlutil.removehtmlattr 去除html标签中的属性 htmlutil.removeallhtmlattr 去除指定标签的所有属性 htmlutil.filter 过滤html文本,防止xss攻击 cronutil(定时任务) 这个工具就更厉害了,完全不需要类似quartz这样的框架来做定时任务,而且cronutil也不需要任何其他依赖,只需要在resources下建一个配置文件,然后在程序启动的时候将定时任务开启就行了,如halo的定时备份功能(每天凌晨1点备份一次)。cron.setting:cc.ryanc.halo.web.controller.admin.backupcontroller.backupresources = 0 0 1 * * ?cc.ryanc.halo.web.controller.admin.backupcontroller.backupdatabase = 0 0 1 * * ?cc.ryanc.halo.web.controller.admin.backupcontroller.backupposts = 0 0 1 * * ? @overridepublic void onapplicationevent(contextrefreshedevent event){ this.loadactivetheme(); this.loadoptions(); this.loadfiles(); this.loadthemes(); //启动定时任务 cronutil.start(); log.info(定时任务启动成功!);} 好了,就介绍这三个工具类,是不是很好用? 安装
maven 在项目的 pom.xml 的 dependencies 中加入以下内容:
cn.hutool hutool-all 5.3.10 gradle:
compile 'cn.hutool5.3.10' 这个类库还是咱国人程序员们开源的:
hutool 也欢迎任何人为hutool添砖加瓦,贡献代码,不过作者是一个强迫症患者,为了照顾病人,需要提交的pr(pull request)符合一些规范。
最后,也感谢为开源作出贡献的程序员们,如果有用得着的,大家也不要重复造轮子了!
HTC U Ultra蓝宝石特别版,售价比肩iphone7
集成电路封装工艺——铝线键合特性及优势
高通携手Infinite,共同推动智能城市的数字化转型
简单分析基于CPLD的数字电路设计原理
EIZO推出2兆像素医疗成像用彩色液晶显示器
好用的Java工具类库
全球半导体龙头英特尔扩大芯片委外代工,找上联电合作
基于IAR的Cortex-M/R内核程序启动流程
联发科技发布最新双核智能手机解决方案MT6577
简化移动USB-C设计
执法仪气密性检测该怎么做,需要用到什么设备
以太坊性能问题可以用什么来解决
你想拥有一台只要1300的索尼Xperia吗?2100W像素加上无边框屏幕只售1300!
CES2013十大未来技术:隔空取物可望成真
2018年车联网发展趋势,是汽车人的暖春还是寒冬?
【学习笔记】CAN的一些基础知识
路由器和猫的区别和wifi的关系
OPPO旗下首款智能电视入网,智能电视将会是智能家居的核心入口之一
小型自动气象站用途
一体成型电感选型原则你知道吗