SpringBoot中事半功倍的工具類合集分享
在日常開發(fā)中經(jīng)常有這樣那樣的小功能需要實(shí)現(xiàn),這些一般會(huì)作為工具類存在,在項(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);
常見的對(duì)稱加密算法:DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6和AES
常見的非對(duì)稱加密算法: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)對(duì)象中的方法
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 判斷類型
主要是對(duì)象的判空和比較
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 對(duì)象的 field 屬性值 Object getField(Field field, Object target)
4.2 ClassUtils
這個(gè)主要用來獲取class的屬性
// 獲取對(duì)象的所有接口 Class<?>[] allInterfaces = ClassUtils.getAllInterfaces(new Player()); // 獲取某個(gè)類的包名 String packageName = ClassUtils.getPackageName(Player.class); // 判斷某個(gè)類是否內(nèi)部類 ClassUtils.isInnerClass(Player.class); // 判斷對(duì)象是否代理對(duì)象 ClassUtils.isCglibProxy(new Player());
4.3 TypeUtils
主要是類型繼承的關(guān)系類,平常用的不多
4.4 AnnotatedElementUtils和 AnnotationUtils
看名字也知道是處理注解相關(guān)的,在開發(fā)一些框架性的功能時(shí),自定義一個(gè)注解做一些功能,使用這個(gè)工具類簡(jiǎn)直不要太輕松
這兩個(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í)候去對(duì)應(yīng)的工具類查找就行了
以上就是SpringBoot中事半功倍的工具類合集分享的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot工具類的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
java實(shí)現(xiàn)文件變化監(jiān)控的方法(推薦)
下面小編就為大家?guī)硪黄猨ava實(shí)現(xiàn)文件變化監(jiān)控的方法(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-08-08java面試突擊之sleep和wait有什么區(qū)別詳析
按理來說sleep和wait本身就是八竿子打不著的兩個(gè)東西,但是在實(shí)際使用中大家都喜歡拿他們來做比較,或許是因?yàn)樗鼈兌伎梢宰尵€程處于阻塞狀態(tài),這篇文章主要給大家介紹了關(guān)于java面試突擊之sleep和wait有什么區(qū)別的相關(guān)資料,需要的朋友可以參考下2022-02-02Maven包沖突導(dǎo)致NoSuchMethodError錯(cuò)誤的解決辦法
web 項(xiàng)目 能正常編譯,運(yùn)行時(shí)也正常啟動(dòng),但執(zhí)行到需要調(diào)用 org.codehaus.jackson 包中的某個(gè)方法時(shí),產(chǎn)生運(yùn)行異常,這篇文章主要介紹了Maven包沖突導(dǎo)致NoSuchMethodError錯(cuò)誤的解決辦法,需要的朋友可以參考下2024-05-05