不要再封装各种Util工具类了,这个神级框架值得拥有!

使用 Orika 实现 Java Bean 映射工具类 使用 Orika 实现 Java Bean 映射工具类1.引入 orika 的 jar 包2.创建映射工具类3.使用映射工具类4.结语 orika 是 Java Bean 映射框架,可以实现从一个对象递归拷贝数据至另一个对象。这样我们可以将数据在实体,DTO,VO之间切换。关于 Bean 映射,其实 BeanUtil中 的 copyProperties() 方法也可以实现,但是如果名字相同类型不同... 阅读详情

Hutool 谐音 “糊涂”,寓意追求 “万事都作糊涂观,无所谓失,无所谓得” 的境界。

Hutool 是一个 Java 工具包,也只是一个工具包,它帮助我们简化每一行代码,减少每一个方法,让 Java 语言也可以 “甜甜的”。Hutool 最初是我项目中 “util” 包的一个整理,后来慢慢积累并加入更多非业务相关功能,并广泛学习其它开源项目精髓,经过自己整理修改,最终形成丰富的开源工具集。(抄自作者简介)

功能

一个 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 加密处理的,所以登录的时候需要先加密之后再到数据库进行查询,使用 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 * * ?
@Override
public void onApplicationEvent(ContextRefreshedEvent event){
 this.loadActiveTheme();
 this.loadOptions();
 this.loadFiles();
 this.loadThemes();
 //启动定时任务
 CronUtil.start();
 log.info("定时任务启动成功!");
}

具体使用方法请看文档 http://hutool.mydoc.io/?t=255673

好了,就介绍这三个工具类,有兴趣的可以去试试其他的工具,挺全的,这应该是我用过最好用的一个工具类库了,值得一试。

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

java常用工具类封装 java常用工具类封装,线程池、elasticsearch高级客户端集成、word,pdf,excel等文档解析 立即下载

相关推荐

完整的思维导图项目源码

完整的思维导图项目源码  

Java中的多线程机制

对于线程的理解一直有限,最近回看下线程,然后自己做个详细的记录吧! 一 线程和进程的区别 进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含1--n个线程。 线程:同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换开销小。 线程和进程一样分为五个阶段:创建、就绪、运行、阻塞、终止。 多进程是指操作系统能同时运行多

swimming_in_IT_的博客 1919

mina框架--MINA框架是对java的NIO包的一个封装

整理:网站建设与网站制作公司-VeiSun.Com)简单介绍:MINA框架是对java的NIO包的一个封装,简化了NIO程序开发的难度

Java-多线程并发-7.线程的包装

任何时刻,只能执行一个虚拟线程,但是,一旦该虚拟线程执行一个IO操作进入等待时,它会被立刻“挂起”,然后执行下一个虚拟线程。Java标准库还提供了一个java.util.Timer类,这个类也可以定期执行任务,但是,一个Timer会对应一个Thread,所以,一个Timer只能定期执行一个任务,多个定时任务必须启动多个Timer,而一个ScheduledThreadPool就可以调度多个定时任务,所以,我们完全可以用ScheduledThreadPool取代旧的Timer。线程池在程序结束的时候要关闭。

yueerba126的博客 431

java房贷计算工具类(商贷、公积金、组合贷)

java版房贷计算工具类,可自定义利率,支付商贷、公积金、组合贷的计算,功能十分强大,高精度,亲测可用。

算法(第四版)官方库

算法(第四版)一书中采用了自己写的库。如果不导入官方库,将导致部分示例代码无法运行。下载后,在 Java Build Path中引入这个包。Eclipse中右键工程名-> Properties -> Java Build Path -> Libraries -> Add Extenernal JARs,选中C:\Users\username\algs4\algs4.jar

【Java高级篇】线程池应用(三)

同步和异步通常来形容一次方法调用,同步方法调用一旦开始,调用者必须等到方法调用返回后,才能继续后续的行为。异步方法调用更像一个消息传递,一旦开始,方法调用就会立即返回,调用者就可以继续后续的操作。而异步方法通常会在另外一个线程中“真实”地执行。1、可以让调用线程异步处理结果,实际是其他线程去同步等待。这时既可以使用同步处理,也可以使用异步来处理。2、必须等待线程结束,不能配合线程池使用。3、以任务为中心,而不是以线程为中心。2、可以方便地分离不同职责的线程池。get 方法是让调用线程同步等待。

输入技术、输出想法 1075

告别重复劳动:用Python+pywinauto打造你的微信个人助理(自动回复/收款/定时发消息)

本文介绍如何利用Python和pywinauto库构建微信个人助手,实现自动回复、定时消息、智能收款等功能,告别重复劳动。通过详细的代码示例和配置指南,帮助开发者快速掌握微信自动化技术,提升工作效率。

weixin_42568801的博客 332

java 线程池封装_线程池工具类的封装

了解更多学习 ThreadPoolExecutor类ThreadPool.javapackage com.tool.me.thread;import java.util.Hashtable;import java.util.Map;import java.util.concurrent.BlockingQueue;import java.util.concurrent.LinkedBlocking...

weixin_39704971的博客 1224

从零到一:手把手教你用C# WinForms搭建工控上位机(含Panel控件布局与事件处理详解)

本文详细介绍了如何使用C# WinForms框架从零开始搭建工控上位机系统,重点讲解了Panel控件的布局技巧和事件处理机制。通过实战案例,帮助开发者掌握界面分区规划、动态窗体切换及数据通信等核心功能,适用于工业自动化监控系统的开发。

weixin_30321709的博客 611

自回归分布滞后模型 (ARDL)及 Stata 具体操作步骤

例如,Bahmani-Oskooee 和 Brooks(1999)研究了汇率波动与贸易收支之间的关系,发现汇率的变动在长期和短期内对贸易收支的影响存在差异,ARDL 模型能够有效地捕捉这种复杂的关系。它结合了自回归(Autoregressive,AR)模型和分布滞后(Distributed Lag,DL)模型的特点,能够同时考察变量之间的短期和长期关系。假设我们收集了一段时间内的居民消费和可支配收入数据,通过对这些数据进行分析和估计,可以得到模型的参数估计值,从而揭示消费与收入之间的短期和长期关系。

a519573917的博客 6097

不要再封装各种 Util 工具类了,这个神级框架值得拥有!

我们知道,JDK中的Cloneable接口只是一个空接口,并没有定义成员,它存在的意义仅仅是指明一个类的实例化对象支持位复制(就是对象克隆),如果不实现这个类,调用对象的clone()方法就会抛出CloneNotSupportedException异常。,通过诸多实用工具类的使用,旨在帮助开发者快速、便捷地完成各类开发任务。这些封装的工具涵盖了字符串、数字、集合、编码、日期、文件、IO、加密、Ai、图形、脚本、数据库JDBC、JSON、HTTP客户端等一系列操作, 可以满足各种不同的开发需求。

jj1245_的博客 903

aubo i5 + realsense D435i识别抓取实践二

aubo i5 + realsense D435i识别抓取实践二前言一、手眼标定是什么?二、标定软件安装1.aruco_ros安装2.vision_visp安装3.easy_handeye安装4.realsense驱动安装5.安装realsense ROS软件包三、配置1.launch文件修改2.打印二维码四、手眼标定1.启动launch文件2.标定步骤3.发布tf关系 前言 前面配置好了aubo机械臂的ROS软件包,机械臂可以正常运行后,接下来我们进行机械臂与相机的手眼标定。手眼标定分为eye_on_ha

转角 6376

不要再封装各种 Util 工具类了,这个神级框架你值得拥有!

钓友宝(微信小程序):一款专门为钓友开发的免费的分享钓点地图与实时天气的软件,地图中标记了所有野钓、钓场、公共水域等的精确位置,支持导航功能。今天给大家推荐一个非常好用的Java工具类库,企业级常用工具类,基本都有,能避免重复造轮子及节省大量的开发时间,非常不错,值得大家去了解使用。Hutool谐音 “糊涂”,寓意追求 “万事都作糊涂观,无所谓失,无所谓得” 的境界。Hutool 是一个 Java...

Java精选 121

ADS中HB仿真自动优化报错问题解决心得

在ADS HB仿真中自动优化出现报错被强制暂停,解决方法如下

yyyyyyyyyyjy的博客 6544

告别wx.showActionSheet:微信小程序自定义底部弹框的5种实现方式对比

本文深入对比了微信小程序中替代原生wx.showActionSheet的五种自定义底部弹框实现方案。从基础视图层模拟到组件化封装,再到利用第三方UI库、CSS3动画及Page-Meta组件,详细分析了各方案的优缺点与适用场景,旨在帮助开发者根据项目需求,选择最合适的方案以实现高度定制化、交互丰富的弹框效果。

weixin_29005499的博客 191
上一篇: 这四种情况下,才是考虑分库分表的时候!
下一篇: 某东面试官:聊聊怎么用SpringBoot + Dubbo搭建分布式电商系统吧…
Java思维导图
博客等级 码龄10年 306粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值