SpringBoot中事半功倍的工具類合集分享
在日常開發(fā)中經(jīng)常有這樣那樣的小功能需要實(shí)現(xiàn),這些一般會作為工具類存在,在項(xiàng)目中有一些通用的功能,Spring內(nèi)置了需要工具類,而且經(jīng)過了大量的驗(yàn)證,可以在開發(fā)中助你一臂之力,代碼也比較穩(wěn)定,學(xué)習(xí)下這些工具類,讓你的工作如虎添翼
這是一篇?dú)w納的文章,直接上,因?yàn)楣ぞ哳愄?,也不好記憶,所以分幾個(gè)模塊,可以參考目錄關(guān)注自己想看的工具類。
大部分的工具類在Spring-core包下,可以在IDE中打開這些類,更詳細(xì)的了解,這邊介紹一些常用的工具方法
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(移動(dòng)設(shè)備用)、Diffie-Hellman、El Gamal、DSA(數(shù)字簽名用)
常見的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 提供了多個(gè)將文件內(nèi)容拷貝到各種目標(biāo)對象中的方法

FileSystemUtils 主要文件夾的操作,拷貝和刪除

2.2 StreamUtils 流的讀取,寫入
StreamUtils是spring中用于處理流的類

2.3 SerializationUtils 序列化
deserialize 反序列化serialize 序列化
3、數(shù)據(jù)轉(zhuǎn)換
3.1 NumberUtils 數(shù)字轉(zhuǎn)換之類
這個(gè)類看起來很明白了,方法名也很直白,基本是字符串轉(zhuǎn)換

3.2 ObjectUtils 判斷類型
主要是對象的判空和比較
3.3 StringUtils 字符串
這個(gè)是最常用的字符串類了,內(nèi)容很多,就不一一列舉了
3.4 PatternMatchUtils 正則表達(dá)式工具類

3.5 CollectionUtils集合工具類
這個(gè)集合類看名字吧,都是一些集合方面的操作,map,list,Array
4、反射工具類
4.1 ReflectionUtils 反射手術(shù)刀
這個(gè)類主要用來做一些反射工作,比如方法的查找,調(diào)用方法,訪問屬性等
下面調(diào)幾個(gè)典型的,這里面有很多的重載方法,根據(jù)自己的需求選用
// 在類中查找指定方法 Method findMethod(Class<?> clazz, String name) // 提供方法參數(shù) 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
這個(gè)主要用來獲取class的屬性
// 獲取對象的所有接口 Class<?>[] allInterfaces = ClassUtils.getAllInterfaces(new Player()); // 獲取某個(gè)類的包名 String packageName = ClassUtils.getPackageName(Player.class); // 判斷某個(gè)類是否內(nèi)部類 ClassUtils.isInnerClass(Player.class); // 判斷對象是否代理對象 ClassUtils.isCglibProxy(new Player());
4.3 TypeUtils
主要是類型繼承的關(guān)系類,平常用的不多

4.4 AnnotatedElementUtils和 AnnotationUtils
看名字也知道是處理注解相關(guān)的,在開發(fā)一些框架性的功能時(shí),自定義一個(gè)注解做一些功能,使用這個(gè)工具類簡直不要太輕松
這兩個(gè)類的函數(shù)非常豐富,很多重載函數(shù)
4.5 BeanUtils
主要是bean的一些操作,這個(gè)是Spring-bean包下的

5、其他
5.1 ResourceUtils 資源訪問
主要是資源訪問的方法,它支持“classpath:”和“file:”的地址前綴,它能夠從指定的地址加載文件資源,主要有兩種,一種是獲取文件,一種是判斷

5.2 SystemPropertyUtils占位符解析工具類
這個(gè)工具類看名字是解析系統(tǒng)屬性的,主要原理是通過依賴PropertyPlaceholderHelper
SystemPropertyUtils.resolvePlaceholders("${os.name}/test")6、總結(jié)
這些工具類的方法賊多,記不住,不過有所謂,只要在需要使用的時(shí)候去對應(yīng)的工具類查找就行了
以上就是SpringBoot中事半功倍的工具類合集分享的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot工具類的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Java+opencv3.2.0實(shí)現(xiàn)輪廓檢測
這篇文章主要為大家詳細(xì)介紹了Java+opencv3.2.0實(shí)現(xiàn)輪廓檢測,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-07-07
SpringBoot 如何實(shí)時(shí)刷新靜態(tài)文件
這篇文章主要介紹了SpringBoot如何實(shí)時(shí)刷新靜態(tài)文件,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12
Java實(shí)現(xiàn)定時(shí)任務(wù)的示例代碼
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)定時(shí)任務(wù)的相關(guān)知識,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-11-11
淺談java switch如果case后面沒有break,會出現(xiàn)什么情況?
這篇文章主要介紹了淺談java switch如果case后面沒有break,會出現(xiàn)什么情況?具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨想小編過來看看吧2020-09-09
java 判斷一個(gè)數(shù)是否為2的整數(shù)次冪方法
今天小編就為大家分享一篇java 判斷一個(gè)數(shù)是否為2的整數(shù)次冪方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-07-07
SpringBoot敏感數(shù)據(jù)脫敏的處理方式
在Spring Boot中處理敏感數(shù)據(jù)脫敏,可以通過以下幾種方式實(shí)現(xiàn),確保敏感信息在接口返回、日志輸出、數(shù)據(jù)庫存儲等環(huán)節(jié)得到保護(hù),文中通過代碼示例講解的非常詳細(xì),需要的朋友可以參考下2025-03-03

