Spring Boot 中事半功倍的一些工具类

news2025/1/16 1:40:40

系列文章地址:https://blog.csdn.net/perfect2011/article/details/124603278

在日常开发中经常有这样那样的小功能需要实现,这些一般会作为工具类存在,在项目中有一些通用的功能,Spring内置了需要工具类,而且经过了大量的验证,可以在开发中助你一臂之力,代码也比较稳定,学习下这些工具类,让你的工作如虎添翼

这是一篇归纳的文章,直接上,因为工具类太多,也不好记忆,所以分几个模块,可以参考目录关注自己想看的工具类。

大部分的工具类在Spring-core包下,可以在IDE中打开这些类,更详细的了解,这边介绍一些常用的工具方法

1、签名解码

1.1 DigestUtils 加密算法工具类

byte[] shas = MessageDigest.getInstance("MD5").digest("香菜".getBytes());
String encodekey = DigestUtils.md5DigestAsHex("md5".getBytes());System.out.println(encodekey);

常见的对称加密算法:DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6和AES

常见的非对称加密算法:RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用)

常见的Hash算法:MD2、MD4、MD5、HAVAL、SHA、SHA-1、HMAC、HMAC-MD5、HMAC-SHA1

1.2 Base64Utils

用于Base64解码和编码,直接看提供了哪些方法,解码使用decode,编码使用encode

2、文件操作

2.1 FileCopyUtils FileSystemUtils

FileCopyUtils 提供了多个将文件内容拷贝到各种目标对象中的方法

FileSystemUtils 主要文件夹的操作,拷贝和删除

2.2 StreamUtils 流的读取,写入

StreamUtils是spring中用于处理流的类

2.3 SerializationUtils 序列化

deserialize 反序列化serialize 序列化

3、数据转换

3.1 NumberUtils 数字转换之类

这个类看起来很明白了,方法名也很直白,基本是字符串转换

3.2 ObjectUtils 判断类型

主要是对象的判空和比较

3.3 StringUtils 字符串

这个是最常用的字符串类了,内容很多,就不一一列举了

3.4 PatternMatchUtils 正则表达式工具类

3.5 CollectionUtils集合工具类

这个集合类看名字吧,都是一些集合方面的操作,map,list,Array

4、反射工具类

4.1 ReflectionUtils 反射手术刀

这个类主要用来做一些反射工作,比如方法的查找,调用方法,访问属性等

下面调几个典型的,这里面有很多的重载方法,根据自己的需求选用

// 在类中查找指定方法
Method findMethod(Class<?> clazz, String name) 
// 提供方法参数
Object invokeMethod(Method method, Object target, Object... args) 
//查找字段
Field findField(Class<?> clazz, String name, Class<?> type) 
// 获取 target 对象的 field 属性值
Object getField(Field field, Object target)

4.2 ClassUtils

这个主要用来获取class的属性

// 获取对象的所有接口
Class<?>[] allInterfaces = ClassUtils.getAllInterfaces(new Player());
// 获取某个类的包名
String packageName = ClassUtils.getPackageName(Player.class);
// 判断某个类是否内部类
ClassUtils.isInnerClass(Player.class);
// 判断对象是否代理对象
ClassUtils.isCglibProxy(new Player());

4.3 TypeUtils

主要是类型继承的关系类,平常用的不多

4.4 AnnotatedElementUtils和 AnnotationUtils

看名字也知道是处理注解相关的,在开发一些框架性的功能时,自定义一个注解做一些功能,使用这个工具类简直不要太轻松

这两个类的函数非常丰富,很多重载函数

4.5 BeanUtils

主要是bean的一些操作,这个是Spring-bean包下的

5、其他

5.1 ResourceUtils 资源访问

主要是资源访问的方法,它支持“classpath:”和“file:”的地址前缀,它能够从指定的地址加载文件资源,主要有两种,一种是获取文件,一种是判断

5.2 SystemPropertyUtils占位符解析工具类

这个工具类看名字是解析系统属性的,主要原理是通过依赖PropertyPlaceholderHelper

SystemPropertyUtils.resolvePlaceholders("${os.name}/test")

6、总结

这些工具类的方法贼多,记不住,不过有所谓,只要在需要使用的时候去对应的工具类查找就行了

不用要求自己都记住

赠人玫瑰,手留余香,求关注,点赞,收藏

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/273602.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

京东一面:20种异步,你知道几种? 含协程

背景说明&#xff1a; 异步&#xff0c;作为性能调优核心方式之一&#xff0c;经常被用于各种高并发场景。 很多场景多会使用到异步&#xff0c;比如&#xff1a; 场景1&#xff1a; 超高并发 批量 写 mysql 、批量写 elasticSearch 场景2&#xff1a; 超高并发 批量 IO 场景…

30分钟掌握 Hive SQL 优化(解决数据倾斜)

Hive SQL 几乎是每一位互联网分析师的必备技能&#xff0c;相信每一位面试过大厂的童鞋都有被面试官问到 Hive 优化问题的经历。所以掌握扎实的 HQL 基础尤为重要&#xff0c;既能帮分析师在日常工作中“如鱼得水”提高效率&#xff0c;也能在跳槽时获得一份更好的工作 offer。…

【23种设计模式】设计模式介绍与分类

前言 本文为 【23种设计模式】设计模式介绍与分类 相关知识介绍&#xff0c;下边将对什么是设计模式&#xff0c;设计模式的分类与23种设计模式的关键点进行详尽介绍~ &#x1f4cc;博主主页&#xff1a;小新要变强 的主页 &#x1f449;Java全栈学习路线可参考&#xff1a;【…

蓝桥算法两周训练营--Day2:DP

T1&#xff1a;P1048 [NOIP2005 普及组] 采药 - 洛谷 代码&#xff1a; 1、二维Dp&#xff1a; package 蓝桥算法两周训练营__普及组.Day2_dp;import java.util.Scanner;/*** author yx* date 2023-02-05 13:16*/ public class t1 {// P1048 [NOIP2005 普及组] 采药 - 洛…

java春招大厂面试,差点让面试官给我聊挂喽!

作者&#xff1a;小傅哥 博客&#xff1a;https://bugstack.cn 沉淀、分享、成长&#xff0c;让自己和他人都能有所收获&#xff01; 八股文整的挺好&#xff0c;算法也刷的够多&#xff0c;但问到项目就很拉胯。 这可能是现在大部分没有实际项目经验的校招生和一直从事边角料开…

环境变量【Linux】

文章目录&#xff1a;Linux环境变量介绍常用的环境变量如何查看环境变量命令搜索路径PATH与环境变量相关的命令环境变量的组织方式通过代码的方式获取环境变量通过系统调用获取或设置环境变量环境变量的全局属性&#xff08;继承&#xff09;Linux环境变量介绍 环境变量&#…

【王道数据结构】第五章(下) | 树 | 二叉树

目录 一、树的存储结构 1、双亲表示法(顺序存储)&#xff1a; 2、孩子表示法(顺序链式) 3、孩子兄弟表示法(链式存储&#xff09; 二、树、森林的遍历 1、树的先根遍历 2、树的后根遍历 3、层序遍历&#xff08;队列实现&#xff09; 4、森林的遍历 三、二叉排序树 …

电子技术——IC偏置-电流源、电流镜、电流舵

电子技术——IC偏置-电流源、电流镜、电流舵 IC偏置设计基于恒流源技术。在IC中的一个特定的区域&#xff0c;会生成一个精确的DC电流&#xff0c;这称为 参考电流 &#xff0c;之后通过电流镜复制到各个所需支路&#xff0c;并且通过电流舵进行电流转向。这项技术为IC的多级放…

知识图谱实战(01):从0-1搭建图片服务器

作者&#xff1a;艾文编程职业&#xff1a;程序员&#xff0c;BAT大厂资深工程师摘要&#xff1a;搜索/推荐场景下给用户展示大量的图片信息&#xff0c;那么这些数据是通过专门的图片服务器来访问的。 我们在基于知识图谱的智能搜索系统中&#xff0c;对搜索出来的每条记录都有…

支付系统核心架构设计思路(万能通用)

文章目录1. 支付系统总览核心系统交互业务图谱2. 核心系统解析交易核心交易核心基础交易类型抽象多表聚合 & 订单关联支付核心支付核心总览支付行为编排异常处理渠道网关资金核算3. 服务治理平台统一上下文数据一致性治理CAS校验幂等 & 异常补偿对账准实时对账DB拆分异…

fpga图像处理(sobel算子)

【声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 关于sobel算子,前面已经讲过计算方法了。一种是上下的sobel算子,一种是左右的sobel算子,两者都相当于prewitt算子的进一步拓展。当然,之前的实现方法都是基于python和opencv实现…

【Leetcode】面试题 16.05. 阶乘尾数、HJ7 取近似值

作者&#xff1a;小卢 专栏&#xff1a;《Leetcode》 喜欢的话&#xff1a;世间因为少年的挺身而出&#xff0c;而更加瑰丽。 ——《人民日报》 目录 面试题 16.05. 阶乘尾数 HJ7 取近似值 面试题 16.05. 阶乘尾数 面试题 16.05. 阶乘尾数 …

这才是计算机科学_计算机大量应用

文章目录一、编译原理1.1 早期编译方式1.2 编程语言二、算法&数据结构2.1 Sort2.2 图搜索2.3 Array2.4 Node三、软件工程起源2.1分解打包三 、摩尔定律3.1 发展历3.1.1 电子管3.1.2 晶体管3.1.3 集成电路 IC3.2 刻蚀工艺3.2.2 光刻负责电路一、编译原理 之前讲的例子中 &am…

46 理论计算机科学基础-北京大学

P10 课程介绍05:46P21-1 预备知识07:43P31-2 确定型有穷自动机例子11:23P41-3 确定型有穷自动机的形式化定义17:51P51-4 设计确定型有穷自动机05:57P61-5 正则运算与封闭性28:16P71-6 非确定型有穷自动机37:43P81-7 DFA与NFA的等价性17:41P91-8 正则语言的封闭性10:30P102-1 正…

第九章(13):STL之常用排序算法

文章目录前情回顾常用排序算法sortrandom_shufflemergereverse下一座石碑&#x1f389;welcome&#x1f389; ✒️博主介绍&#xff1a;一名大一的智能制造专业学生&#xff0c;在学习C/C的路上会越走越远&#xff0c;后面不定期更新有关C/C语法&#xff0c;数据结构&#xff0…

Java 面向对象三大特性之三——接口(面试、学习、工作必备技能)

目录 一、接口概述(interface) 二、接口的成员 三、继承和实现 四、单继承和多实现 五、接口的优点 六、接口与抽象类 七、接口的思想 八、接口案例——运动员 ​​​​​​​ 接口概述(interface) 定义&#xff1a;是抽象方法和常量值的集合。 本质&#xff1a;从…

【C++修行之路】类和对象

面向对象编程详解目录前言面向对象和面向过程类和结构体构造函数和析构函数拷贝构造和赋值重载结语前言 好久不见&#xff0c;首先祝大家元宵节快乐&#xff0c;万家元夕宴&#xff0c;一路太平歌&#xff0c;今天执此佳节&#xff0c;一起来学习一下类和对象吧~ 面向对象和面…

系列分享 |《最强的 VLC 多媒体开发教程》

作者&#xff1a; 一去、二三里 个人微信号&#xff1a; iwaleon 微信公众号&#xff1a; 高效程序员 专栏介绍 《VLC 多媒体开发》&#xff0c;是一个专注于 libVLC 开发的专栏&#xff0c;里面共包含几十个章节&#xff0c;从 0 到 1&#xff0c;图文并茂&#xff0c;详细地…

【Linux】冯诺依曼体系与操作系统(OS)概念

文章目录冯诺依曼体系结构为什么是这样的结构局部性原理操作系统(Operator System)设计OS的目的定位如何理解管理 (精髓:先描述再组织)总结系统调用和库函数概念冯诺依曼体系结构 我们常见的计算机,如笔记本.我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系 为什么是这…

C++深入浅出(八)—— 继承

文章目录1. 继承的概念及定义&#x1f351; 继承的概念&#x1f351; 继承的定义&#x1f345; 定义格式&#x1f345; 继承关系和访问限定符&#x1f345; 继承基类成员访问方式的变化2. 基类和派生类对象赋值转换3. 继承中的作用域4. 派生类的默认成员函数5. 继承与友元6. 继…