Java程式設計師都應該去使用一下這款強大的國產工具類庫
來源:程式設計師私房菜(ID:eson_15)
這不是標題黨,今天給大家推薦一個很棒的國產工具類庫:Hutool。可能有很多朋友已經知道這個類庫了,甚至在已經在使用了,如果你還沒有使用過,那不妨去嘗試一下,我們專案組目前也在用這個。這篇文章來簡單介紹一下這個類庫。
官網地址:https://www.hutool.cn/
Hutool是Hu + tool的自造詞,前者是作者致敬他的“前任公司”,後者為工具之意,諧音“糊塗”,寓意追求“萬事都作糊塗觀,無所謂失,無所謂得”的境界。看來寫這個類庫的作者(不止一個)也是文藝青年啊。
Hutool是一個Java工具包,它可以幫助我們簡化每一行程式碼,減少每一個方法,讓Java語言也可以“甜甜的”。所以很多人稱之為:小甜甜。
我們使用該工具類,只需要引入它的依賴即可。
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>4.2.1</version>
</dependency>
可能很多國內程式設計師都不喜歡看官方文件,因為基本上都是英文的,其實我還是鼓勵大家去看英文文件的。但這個工具類的參考文件和API文件全是中文的,中文的,中文的,可以說能滿足很大一部分開發人員的需求了。
先舉一個官方提供的例子,模擬一下表單提交,來一起感受一下 Hutool 的便捷。
public class Demo {
public static void main(String[] args) {
File file = new File("D:\\face.jpg");
// 第一種方式:自定義構建表單
HttpRequest request = HttpRequest
.post("http://ip:port/xxxx")
.form("file", file)
.form("fileType", "jpg");
HttpResponse response = request.execute();
System.out.println(response.body());
// 第二種方式:使用統一表單,Http模組會自動識別引數型別,並完成上傳
HashMap<String, Object> paramMap = new HashMap<>();
paramMap.put("author", "倪升武");
paramMap.put("wechat", "程式設計師私房菜");
String result = HttpUtil.post("http://ip:port/xxxx", paramMap);
System.out.println(result);
}
}
當然,Hutool 還有其他很多工具,比如對檔案、流、加密解密、轉碼、正則、執行緒、XML等JDK方法進行封裝,組成各種Util工具類,同時也提供以下元件:
上文匯入的依賴是 hutool-all,意味匯入所有的模組,當然,我們也可以根據實際需要對上圖中的每個模組進行單獨的依賴匯入。由於篇幅原因,我簡單介紹其中兩個模組,其他的模組大家可以去看看官方文件,去嘗試一下,還是有很多東西值得我們去學習的。
HtmlUtil(HTML工具類)
我是蠻喜歡這個工具類的,用的最多的就是 HtmlUtil.encode,可以將一些字元轉化為安全字元,防止xss注入和SQL隱碼攻擊,比如我之前做網站的時候就用到了這個來處理評論的提交。
comment.setContent(HtmlUtil.encode(content));
它會轉義文字中的HTML字元為安全的字元,這樣比較安全。另外,HtmlUtil 還提供了以下方法,有興趣的朋友可以去試一下。
CronUtil(定時任務)
我們使用 CronUtil 時,只需要在 src/main/resources/config 下放入 cron.setting 檔案(預設是這個路徑的這個檔案),然後在檔案中放入定時規則,如:
[com.example.hutool.cron]
TimerTest.runTask = */2 * * * * ?
這表示:每隔 2 秒鐘執行一遍 com.example.hutool.cron 包下的 TimerTest 類中的 runTask 方法。這就很方便了,我在專案啟動時就把定時器開啟即可,假如你是 Spring Boot 工程,就可以這麼做:
/**
* 專案初始化配置
* @author shengwu ni
* @date 2018-12-06
*/
@Component
public class InitConfig {
private static final Logger LOGGER = LoggerFactory.getLogger(InitConfig.class);
@PostConstruct
public void initTimer() {
LOGGER.info("專案啟動,開啟Hutool定時任務……");
CronUtil.setMatchSecond(true);
CronUtil.start();
}
}
這樣就會每隔 2 秒中去執行一下目標方法。程式碼中的 setMatchSecond(true) 是設定支援秒級別定時任務,這麼做是為了相容 Quartz 表示式,5位表示式、6位表示式都相容。可以說是很棒了。
該類庫的其他工具類我就不一一介紹了,感興趣的讀者可以自己去官網看一下,我覺得最吸引人的還是非常全的中文文件和API文件,建議大家去閱讀一下,相信你也會喜歡上這個國產類庫。
我為什麼推薦大家都去嘗試一下這個類庫呢?倒不是說推薦大家一定去使用,我們可以去體驗一下該工具類是否真的可以簡化我們的編碼。這個工具類庫一開始,其實就是專案中普通的 Util 工具類,慢慢豐富,最後衍生出一個類庫,裡面的大部分原始碼我相信大部分程式設計師都可以看得懂,也是一個很好的學習機會。再說了,我的哪一篇文章讓你失望過?(得瑟臉)
讀完這篇文章,相信你會轉發給更多的人。
(完)
Java團長
專注於Java乾貨分享
掃描上方二維碼獲取更多Java乾貨
相關文章
- Java 程式設計師都該懂的 HashMapJava程式設計師HashMap
- 程式設計師都應該知道的福利程式設計師
- .net程式設計師應該掌握的常用類庫程式設計師
- 好程式設計師Java培訓分享Java程式設計師常用的工具類庫程式設計師Java
- 每個程式設計師都應該讀的書程式設計師
- 每個程式設計師都應該知道的 15 個最佳 PHP 庫程式設計師PHP
- Java程式設計師應該知道的20個有用的庫Java程式設計師
- 每個程式設計師都應該讀《Unix程式設計藝術》程式設計師
- 每個程式設計師都應該成為架構師程式設計師架構
- 國外程式設計師推薦:每個程式設計師都應該讀的非程式設計書程式設計師
- 所有程式設計師都應該遵守的 11 條規則程式設計師
- 程式設計師都應該知道的福利【必知必懂】程式設計師
- 書單推薦:每個程式設計師的程式設計之路上都應該看這11本書程式設計師
- 每個程式設計師都應該學習使用Python或Ruby程式設計師Python
- 程式設計師都該懂點 HTTP程式設計師HTTP
- 程式設計師都應該瞭解哪些安全知識程式設計師
- 每個程式設計師都該知道的五大定律程式設計師
- 每個程式設計師都應該知道的基礎數論程式設計師
- Java程式設計師使用的20幾個大資料工具Java程式設計師大資料
- Java程式設計師應該遵循的10條戒律Java程式設計師
- 設計師都應該知道的ICON知識
- 程式設計師都應該懂一點開源協議程式設計師協議
- 程式設計師不應該再犯的五大程式設計錯誤程式設計師
- Java程式設計師新手老手都離不開八大開發工具Java程式設計師
- 年終了,程式設計師應該這樣談加薪!程式設計師
- 每個程式設計師都該知道的10大編碼原則程式設計師
- 15款Java程式設計師必備的開發工具Java程式設計師
- Java程式設計師不要錯過的7款新工具Java程式設計師
- 程式設計師都應該挖一口屬於自己的井程式設計師
- Rework:每個程式設計師都應該讀的一本書程式設計師
- 每個程式設計師都應該學會分解複雜的方法程式設計師
- 每個程式設計師都應該瞭解的硬體知識程式設計師
- 程式設計師應該造的五大輪子程式設計師
- Python 程式設計師應該知道的 10 個庫Python程式設計師
- 3 年 Java 程式設計師應該具備的技能!Java程式設計師
- Java程式設計師應該掌握的三種語言Java程式設計師
- 每個程式設計師都應該參加一次 GDD程式設計師
- 每位設計師都應該擁有的50個CSS程式碼片段CSS