1.Star 28.2k!源码这个开源库真是源码好用
2.好玩的开源项目推荐
3.hutool工具包踩坑经验,分享一个点给大家
4.List的源码拆分的几种方式
5.什么是hutool?
6.死磕 Hutool 源码系列(一)——StrUtil 源码解析
Star 28.2k!这个开源库真是源码好用
Star .2k!这个开源库真是源码好用
Hutool是一个强大的Java工具包,旨在提升开发效率,源码andrax源码减少代码冗余,源码简化常见操作。源码它提供了一系列核心工具类,源码涵盖文件操作、源码网络请求、源码日期处理、源码加密解密和数据转换等。源码以下是源码一份快速入门指南,帮助你快速上手这个实用的源码工具。理解基础:Hutool封装了Java常用功能,通过静态方法简化开发,目标是让Java开发更简单高效。
环境配置:开始前,需将Hutool添加到项目中,Maven或Gradle都能轻松集成。
核心工具应用:
FileUtil:提供文件操作工具,如读写、复制、删除,简化处理。
例子:文件读取、写入、复制和删除,Hutool简化了异常处理和文件操作。
DateUtil:日期和时间处理工具,易于操作,如格式化、解析和计算。
示例:获取当前日期、日期格式化和计算时间差,提升日期处理效率。
HttpUtil:简化HTTP请求,支持GET、POST等,处理响应数据。
案例:发送请求、设置请求头和解析JSON响应,减少网络请求复杂性。iapp使用教程源码
JsonUtil:处理JSON数据,易于序列化和反序列化。
示例:对象与JSON字符串转换,方便操作JSON数据。
BeanUtil:处理Java Bean,支持属性复制、转换和映射。
案例:属性复制、Map与Bean转换,简化对象操作。
ImageUtil:图像处理工具,支持读写、转换和处理。
例子:读取、转换、缩放和水印添加,提升图像处理效率。
EncryptUtil:加密解密工具,支持多种算法如MD5、AES和DES。
实例:MD5和AES加密,确保数据安全。
阅读源码:深入理解Hutool的工作原理,提高编程技能。
实践运用:不断在项目中实践,Hutool将助力你成为高效开发者。
好玩的开源项目推荐
欢迎光临,今日为您推荐一系列趣味十足的开源项目,让工作之余也能享受科技带来的乐趣。
项目一:Spleeter。一款音轨分离软件,只需输入一段命令,即可轻松分离音乐中的人声与乐器声,支持多种常见音频格式,由 Python 语言编写,并利用 TensorFlow 进行模型训练。
项目地址:github.com/deezer/spleeter...
项目二:FlutterBoost。由阿里系闲鱼团队开源的框架,提供快速便捷的原生应用与 Flutter 混合集成方案,最新版本为 v3.0-preview,目前仍持续维护中。
项目地址:github.com/alibaba/flutterboost...
项目三:Orika。一个基于字节码技术栈实现的源码是什么鬼高性能 Java 对象映射框架,以其简单易用、高效的特点成为众多映射框架中的佼佼者。
项目地址:github.com/orika-mapper...
项目四:hotkey。京东 APP 后台热数据探测开源框架,经过多次高压压测和京东 大促的考验,精确探测热门商品并快速推送到服务端,大幅减轻数据层查询压力,提升应用性能。
项目地址:gitee.com/jd-platform-hotkey...
项目五:PaddleOCR。基于飞桨的 OCR 工具库,提供超轻量级中文 OCR,支持中英文数字组合识别、竖排文本识别、长文本识别,同时包含多种文本检测、识别的训练算法。
项目地址:gitee.com/paddlepaddle/...
项目六:XXL-JOB。一个轻量级分布式任务调度平台,设计目标是开发迅速、学习简单、轻量级、易扩展,现已开放源代码,并在多家公司线上产品线中应用。
项目地址:github.com/xuxueli/xxl-job...
项目七:CIM。基于 Netty 框架的即时消息推送系统,支持多端接入,适用于移动应用、物联网、智能家居等领域。
项目地址:gitee.com/farsunset/cim...
项目八:DevSidecar。为开发者提供辅助的边车工具,通过本地代理将 HTTP 请求代理到加速通道,解决网站和库无法访问或访问速度慢的问题。
项目地址:github.com/docmirror/devsidecar...
项目九:Jsoup。一款 Java 的 HTML 解析器,可直接解析 URL 或 HTML 文本,提供简单易用的 API,支持 DOM、CSS 以及类似 jQuery 的操作方法。
项目地址:github.com/jhy/jsoup...
项目十:Knife4j。为 Java MVC 框架集成 Swagger 生成 API 文档的增强解决方案,前身是视频交友APP源码 swagger-bootstrap-ui,取名 knife4j,旨在小巧、轻量、功能强大。
项目地址:github.com/xiaoymin/swagger-bootstrap-ui...
项目十一:Arthas。阿里巴巴开源的 Java 诊断工具,支持 JDK 6+,适用于 Linux/Mac/Windows,提供命令行交互模式与丰富的 Tab 自动补全功能。
项目地址:github.com/alibaba/arthas...
项目十二:El-admin。基于 Spring Boot、Jpa、Spring Security、redis、Vue 的前后端分离的开源后台管理系统,采用 RBAC 权限控制方式,支持数据字典、数据权限管理与代码生成。
项目地址:github.com/elunez/eladmin...
项目十三:Halo。使用 Java 开发的开源博客系统,基于 Spring Boot 框架,通过一行命令即可完成安装。
项目地址:github.com/halo-dev/halo...
项目十四:Hutool。一个功能全面的 Java 工具类库,提供静态方法封装,降低学习成本,提高工作效率。
项目地址:github.com/dromara/hutool...
希望以上推荐能满足您的需求,若感兴趣,不妨前往 GitHub 上探索更多好玩的开源项目,每日都有更新!
hutool工具包踩坑经验,分享一个点给大家
hutool工具包踩坑经验,分享一个点给大家
在项目中使用hutool工具包时,可能会遇到一些意想不到的问题。比如,当选择hutool版本为5.7.5时,可能会遇到一个看似简单的代码执行错误。代码如下:Long a=L;Long b=L;System.out.print(NumberUtil.equals(a,b));
多数人可能会认为,由于这两个数字在数值上有差异,执行结果应为false。然而,实际上,合唱大西瓜源码执行结果却是true。这可能会让人感到意外。问题的原因在于hutool工具包的版本5.7.5中,NumberUtil.equals方法在处理长整型数据时,由于转换精度损失,导致错误的判断结果。
为解决此问题,只需将hutool的版本更改为5.8.4或更高版本。在这些版本中,NumberUtil.equals方法已修复并支持长整型参数,避免了精度损失的误判情况。通过查看源代码,我们可以发现这一问题的根源,理解其修复逻辑。
在生产环境中,项目的稳定性至关重要,不能频繁地更换或升级依赖包,以免引入未知的bug或性能问题。因此,对于常用的工具类,建议使用成熟的框架如Spring或Apache等提供的实现,或者自己编写并验证过的代码,以确保代码质量和系统稳定性。
虽然hutool工具包在某些方面提供了便利,但也存在潜在的问题和风险。在实际应用中,我们应当谨慎评估和管理依赖包的风险,以避免因工具包的不完善而引发的潜在问题。代码编写时,应优先考虑代码的可维护性、可靠性和安全性,选择权威的平台提供的工具或自定义实现,以确保项目的稳定运行。
List的拆分的几种方式
在开发过程中,处理大型集合时常常需要将其拆分成小块,这种操作被称作分片或List的分割。其实,许多大神已经为我们提供了现成的工具,省去了自定义代码的繁琐。以下是Java中常用的三种分片实现方法:
1. Google的Guava框架:在pom.xml中添加Guava支持后,通过Lists.partition()方法实现切片,代码示例如下:
...
2. Apache的commons框架:同样在pom.xml添加支持,使用ListUtils.partition(),代码示例如下:
...
3. Hutool工具类:引入Hutool框架后,利用ListUtil.partition()完成切片,代码示例如下:
...
值得注意的是,选择哪种方法取决于项目的实际需求和已有的依赖。例如,批量数据处理时,如果数据量大,可以考虑将数据拆分以避免一次性插入数据库导致的性能问题或超限错误。具体操作时,可以根据数据库的配置进行调整。
这些工具包如Guava、Apache Commons和Hutool,提供了丰富的实用工具,性能优良,是开发者的得力助手。无需深入源码,直接使用即可大大简化工作。
以上内容源于程序员xiaozhang的文章,原文链接:cnblogs.com/scott/p...
什么是hutool?
详解Hutool路径遍历漏洞CVE--
Hutool是一个广泛使用的Java工具库,提供了丰富的功能以简化开发者在Java应用中的日常任务。其ZipUtil组件在处理压缩文件时,存在路径遍历漏洞CVE--。本文将深入分析该漏洞的细节、利用条件、影响范围以及修复方法。组件使用场景与漏洞概述
Hutool-core组件包括了Bean操作、日期处理、多种实用工具等功能,尤其在压缩文件和解压文件等操作中,ZipUtil类起到了关键作用。该组件的unzip函数在默认情况下未对压缩文件内的文件名进行充分检测,导致在解压过程中可能存在路径穿越的危险。漏洞细节与利用条件
该漏洞允许攻击者利用Hutool的unzip函数,通过未经校验的压缩文件内数据,实现任意文件覆盖效果。具体来说,攻击者可以通过构造恶意压缩文件,其中包含指向敏感文件路径的文件名(如/etc/passwd或ssh连接私钥文件),进而实现服务器被远程控制或远程命令执行。漏洞利用条件包括使用Hutool默认的unzip函数且未对压缩文件内的文件数据进行有效校验。影响版本与漏洞分析
CVE--影响了Hutool的所有版本小于4.1.。该漏洞本质上是一个标准的Zip Slip漏洞,其核心在于ZipUtil类在创建File对象时直接从zipEntry获取压缩文件的文件名,未对文件名进行过滤。这一过程可能导致目录穿越,进而引发安全问题。漏洞复现与修复策略
为了复现实验,可以使用Python脚本创建一个包含恶意文件名的压缩文件。通过Hutool的unzip函数对这个压缩文件进行解压操作,观察结果。结果通常会显示敏感文件被覆盖的情况。针对这一漏洞,有三种主要的修复策略:1. **升级至4.1.版本**:Hutool的修复版本引入了`FileUtil`替代了原始的`File`对象,通过`checkSlip`函数进行安全性检查,确保文件在指定的父目录下,防止路径遍历攻击。这种修复方法可以通过修改包管理文件(如`pom.xml`或`build.gradle`),重新构建项目来实现。
2. **手动修改源码**:开发者可以下载Hutool组件的源码,自行实现相应的安全校验逻辑,以替换原始的解压流程,避免漏洞的产生。
3. **权限控制**:以较低权限的用户执行解压操作,限制对敏感目录和文件的访问权限,以此来防范Zip Slip攻击。
通过这些修复措施,可以有效防止Hutool路径遍历漏洞的利用,保障应用安全。
死磕 Hutool 源码系列(一)——StrUtil 源码解析
深入解析StrUtil源码 在实际项目中,String数据结构的使用极为频繁,因此对字符串的操作代码也相对繁多,这些操作往往独立于具体业务之外,为实现代码简洁性和可读性,我们通常将对String的各种操作封装成静态工具类,这就是本文主角——StrUtil。StrUtil几乎囊括了我们能想到的所有字符串通用操作方法。 源码探索 StrUtil作为静态工具类,内部仅包含静态方法和静态常量。其设计者贴心地预设了诸多开发中常用的字符,如空字符、空格、制表符等,避免了硬编码,便于直接调用。 方法归类 通过方法脑图,我们对StrUtil的方法有了大致了解。每个方法名简洁明了,见名知意。 分类包括:判空类方法
去前后空格类方法
查找类方法
源码包含众多静态方法,本文首篇总结了部分方法,后续会继续更新。可视化Docker管理工具-DockerUI
DockerUI是一个便捷且轻巧的Docker管理工具,它通过Web界面让那些不熟悉Docker命令的用户能迅速融入Docker的世界。
DockerUI提供了直观的界面,用户无需记住复杂的Docker命令,只需下载镜像,便可以立即完成部署。利用Docker的特性,在DockerUI中直接更新镜像版本,并使用相同的配置重新部署,即可实现升级,同时享受最新版本的功能。
DockerUI涵盖了Docker CLI命令行%以上的命令功能,通过其提供的可视化操作功能,用户可以轻松地管理Docker环境和Docker Swarm集群环境。
DockerUI是一个图形化的Docker容器镜像管理工具,用户可以利用它轻松构建、管理和维护Docker环境。此外,DockerUI是完全开源免费的,支持基于容器化的安装方式,方便高效地部署。
官方站点:github.com/gohutool/doc...
Docker主机管理、数据卷管理、镜像管理、容器管理、构建管理、仓库配置管理、网络配置管理。
Docker Swarm集群管理包括集群概要信息、节点管理、Service管理、任务管理、密码管理、配置管理。
支持Docker任务编排和Docker Swarm任务编排。
首页(概要)、镜像列表、搜索仓库/拉取镜像、构建镜像、导入/导出镜像、推送镜像、启动镜像、容器列表、容器控制台、容器文件系统、容器监控、容器进程管理、容器文件导出、网络管理、集群管理、服务创建、任务管理、任务列表、容器编排。
安装和入门:
来自Github:从github网站下载源代码,请访问 github.com/gohutool/doc...
安装golang运行时环境。
进入项目目录,运行命令:./server启动。
来自hub.docker.com:从中心提取图像,使用命令docker image pull Joinsunsoft/docker.ui。
启动镜像,使用命令docker container run --rm --name docker.ui -v /var/run/docker.sock:/var/run/docker.sock -p : joinsunsoft/docker.ui。
访问:...:。
初始用户名/密码:ginghan/。
Hutool资源消耗漏洞 CVE--
Hutool是一个被广泛应用于Java开发的工具库,因其简单易用、功能丰富、性能优越等特点而受到欢迎。然而,近期分析发现,Hutool组件存在CVE--资源消耗漏洞,主要在ZipUtil类的unzip函数中。
在使用Hutool默认的unzip函数时,若未对压缩文件解压的数据大小进行校验,就可能导致资源消耗。该漏洞主要影响Hutool-core版本从4.4.2到5.8.。
资源消耗漏洞,通常是指恶意用户通过特定方式使用系统资源,导致资源(如CPU、内存、磁盘空间、网络带宽等)耗尽,影响系统的正常运行和可用性。此漏洞可能导致DoS攻击,系统崩溃或死机,同时在资源耗尽的情况下,系统性能下降,可能无法处理其他重要安全事件或阻止攻击者利用其他已知漏洞。
Hutool-core组件产生此漏洞的原因在于unzip函数默认参数limit为-1,未进行zipFileSize检测。zipFileSize为压缩文件内所有文件未压缩大小之和。当limit为-1时,不会进行检查,导致资源消耗。
通过构造Zip Bomb文件进行漏洞复现,发现压缩率的Zip Bomb文件成功解压出0.GB的文件,展示了资源消耗漏洞的严重性。
针对此漏洞,有多种修复方法。首先,升级Hutool至5.8.版本,该版本修复了检查文件压缩率的功能,如果压缩率大于,则视文件为Zip Bomb文件。其次,手动修改源码,通过实现相关校验代码避免漏洞产生。最后,设置磁盘配额,限制用户和进程使用的磁盘空间,防止恶意使用。
对于使用Hutool的开发者来说,应密切关注组件更新,及时升级至修复版本,或采取其他安全措施,以防止资源消耗漏洞带来的风险。