Hutool
官網(wǎng) | http://hutool.cn/ |
---|---|
API 參考 | http://hutool.mydoc.io/?t=812 |
GitHub | https://github.com/looly/hutool |
一個(gè)Java基礎(chǔ)工具類玄糟,對(duì)文件掂器、流腕铸、加密解密侈沪、轉(zhuǎn)碼、正則劲适、線程齐板、XML等JDK方法進(jìn)行封裝采章,組成各種Util工具類景鼠,同時(shí)提供以下組件:
- 布隆過濾
- 緩存
- 克隆接口
- 類型轉(zhuǎn)換
- 日期處理
- 數(shù)據(jù)庫(kù)ORM(基于ActiveRecord思想)
- 基于DFA有限自動(dòng)機(jī)的多個(gè)關(guān)鍵字查找
- HTTP客戶端
- IO和文件
- 有用的一些數(shù)據(jù)結(jié)構(gòu)
- 日志
- 反射代理類的簡(jiǎn)化(AOP切面實(shí)現(xiàn))
- Setting(一種擴(kuò)展Properties的配置文件)
- System(JVM和系統(tǒng)信息等)
- WatchService的封裝(文件變動(dòng)監(jiān)控)
- XXXUtil各種有用的工具類
經(jīng)常使用的工具類及方法:
StrUtil.isEmpty("ABC"); DateUtil.now(); BeanUtil.copyProperties(source,target); BeanUtil.beanToMap(source,target); HttpUtil
Project Lombok
官網(wǎng) | https://projectlombok.org/ |
---|---|
API 參考 | https://projectlombok.org/features/index.html |
GitHub | https://github.com/rzwitserloot/lombok |
使用注解 annotation 來減少代碼重復(fù)仲翎,例如 getter、setter铛漓、not null檢查溯香、生成 Builder 等。下面有一些 Project Lombok 的 feature:
val - 自動(dòng)解析變量的返回類型浓恶,并且該變量是 final 類玫坛,如
var foo = example.get(0);//=> final String foo = example.get(0);
@NonNull
- 自動(dòng) check 非空并拋異常;@Cleanup
- 自動(dòng)關(guān)閉資源问顷,調(diào)用 close() 方法昂秃;@Getter / @Setter
- 不用再寫public int getFoo() {return foo;}
了禀梳;@ToString
- 不用再開啟 Debugger 來看某個(gè)值了杜窄,它能自動(dòng)生成一個(gè) toString 方法;@EqualsAndHashCode
- 更方便地比較兩個(gè)對(duì)象是否相等算途;@NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor
- 自動(dòng)按順序生成構(gòu)造函數(shù)塞耕;@Data
- 同時(shí)包括 @ToString, @EqualsAndHashCode,
@Getter
對(duì)所有變量,@Setter
對(duì)所有非 final 變量嘴瓤,
@RequiredArgsConstructor
常用的
@Data 在類上聲明此注解,會(huì)自動(dòng)生成Getter,Setter,equals,hashCode方法 @NonNull 用于參數(shù),檢查該參數(shù)是否為空 @SneakyThrows 用于方法,有異常自動(dòng)捕獲并拋出 @Log 相當(dāng)于 聲明日志對(duì)象 @NoArgsConstructor 無參構(gòu)造方法 @AllArgsConstructor 全參構(gòu)造方法 val 自動(dòng)解析變量的返回類型扫外,并且該變量是 final 修飾的