不要再封装各种 Util 工具类了,这款开源项目,真的很好用

今天给大家推荐一个,非常好用的Java工具类库,企业级常用工具类,基本都有,能避免重复造轮子及节省大量的开发时间,非常不错,值得大家去了解使用。

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

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

1、功能


一个 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 图片验证码实现

2、安装


maven项目在pom.xml添加以下依赖即可:

cn.hutool

hutool-all

4.6.3

3、简单测试


CronUtil(定时任务)

这个工具就更厉害了,完全不需要类似 quartz 这样的框架来做定时任务,而且 CronUtil 也不需要任何其他依赖,只需要在 resources 下建一个配置文件,然后在程序启动的时候将定时任务开启就行了

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(“定时任务启动成功!”);

}

Convert

类型转换工具类,用于各种类型数据的转换。

//转换为字符串

int a = 1;

String aStr = Convert.toStr(a);

//转换为指定类型数组

String[] b = {“1”, “2”, “3”, “4”};

Integer[] bArr = Convert.toIntArray(b);

//转换为日期对象

String dateStr = “2017-05-06”;

Date date = Convert.toDate(dateStr);

//转换为列表

String[] strArr = {“a”, “b”, “c”, “d”};

List strList = Convert.toList(String.class, strArr);

DateUtil

日期时间工具类,定义了一些常用的日期时间操作方法。

//Date、long、Calendar之间的相互转换

//当前时间

Date date = DateUtil.date();

//Calendar转Date

date = DateUtil.date(Calendar.getInstance());

//时间戳转Date

date = DateUtil.date(System.currentTimeMillis());

//自动识别格式转换

String dateStr = “2017-03-01”;

date = DateUtil.parse(dateStr);

//自定义格式化转换

date = DateUtil.parse(dateStr, “yyyy-MM-dd”);

//格式化输出日期

String format = DateUtil.format(date, “yyyy-MM-dd”);

//获得年的部分

int year = DateUtil.year(date);

//获得月份,从0开始计数

int month = DateUtil.month(date);

//获取某天的开始、结束时间

Date beginOfDay = DateUtil.beginOfDay(date);

Date endOfDay = DateUtil.endOfDay(date);

//计算偏移后的日期时间

Date newDate = DateUtil.offset(date, DateField.DAY_OF_MONTH, 2);

//计算日期时间之间的偏移量

long betweenDay = DateUtil.between(date, newDate, DateUnit.DAY);

StrUtil

字符串工具类,定义了一些常用的字符串操作方法。

//判断是否为空字符串

String str = “test”;

StrUtil.isEmpty(str);

StrUtil.isNotEmpty(str);

//去除字符串的前后缀

StrUtil.removeSuffix(“a.jpg”, “.jpg”);

StrUtil.removePrefix(“a.jpg”, “a.”);

//格式化字符串

String template = “这只是个占位符:{}”;

String str2 = StrUtil.format(template, “我是占位符”);

LOGGER.info(“/strUtil format:{}”, str2);

ClassPathResource

获取classPath下的文件,在Tomcat等容器下,classPath一般是WEB-INF/classes。

//获取定义在src/main/resources文件夹中的配置文件

ClassPathResource resource = new ClassPathResource(“generator.properties”);

Properties properties = new Properties();

properties.load(resource.getStream());

LOGGER.info(“/classPath:{}”, properties);

ReflectUtil

Java反射工具类,可用于反射获取类的方法及创建对象。

//获取某个类的所有方法

Method[] methods = ReflectUtil.getMethods(PmsBrand.class);

//获取某个类的指定方法

Method method = ReflectUtil.getMethod(PmsBrand.class, “getId”);

//使用反射来创建对象

PmsBrand pmsBrand = ReflectUtil.newInstance(PmsBrand.class);

//反射执行对象的方法

ReflectUtil.invoke(pmsBrand, “setId”, 1);

NumberUtil

数字处理工具类,可用于各种类型数字的加减乘除操作及判断类型。

double n1 = 1.234;

double n2 = 1.234;

double result;

//对float、double、BigDecimal做加减乘除操作

result = NumberUtil.add(n1, n2);

result = NumberUtil.sub(n1, n2);

result = NumberUtil.mul(n1, n2);

result = NumberUtil.div(n1, n2);

//保留两位小数

BigDecimal roundNum = NumberUtil.round(n1, 2);

String n3 = “1.234”;

//判断是否为数字、整数、浮点数

NumberUtil.isNumber(n3);

NumberUtil.isInteger(n3);

NumberUtil.isDouble(n3);

BeanUtil

JavaBean的工具类,可用于Map与JavaBean对象的互相转换以及对象属性的拷贝。

PmsBrand brand = new PmsBrand();
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

总结

我们总是喜欢瞻仰大厂的大神们,但实际上大神也不过凡人,与菜鸟程序员相比,也就多花了几分心思,如果你再不努力,差距也只会越来越大。实际上,作为程序员,丰富自己的知识储备,提升自己的知识深度和广度是很有必要的。

Mybatis源码解析

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
g.cn/images/e5c14a7895254671a72faed303032d36.jpg" alt=“img” style=“zoom: 33%;” />

总结

我们总是喜欢瞻仰大厂的大神们,但实际上大神也不过凡人,与菜鸟程序员相比,也就多花了几分心思,如果你再不努力,差距也只会越来越大。实际上,作为程序员,丰富自己的知识储备,提升自己的知识深度和广度是很有必要的。

Mybatis源码解析

[外链图片转存中…(img-3XshbZ5Z-1713500614731)]

[外链图片转存中…(img-1hYdw1AH-1713500614731)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 21
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值