工欲善其事必先利其器,廢話(huà)少說(shuō)直接開(kāi)始推薦我本人開(kāi)發(fā)過(guò)程中最常用的讓搬磚速度提升不少的IDEA插件。
lombok插件官方鏈接:https://plugins.jetbrains.com/plugin/6317-lombok
項(xiàng)目中我們經(jīng)常會(huì)定義一些POJO類(lèi),里面充斥著大量getset方法和toString的樣板方法,讓本身應(yīng)該簡(jiǎn)潔明了的實(shí)體類(lèi)變得臃腫不堪,就像這樣:
public class User { /** 姓名 */ private String name; /** 年齡 */ private Integer age; public User() {} public User(String name, Integer age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } @Override public String toString() { return "User{" + "name='" + name + ''' + ", age=" + age + '}'; } }
而我們的關(guān)注點(diǎn)其實(shí)僅僅是User類(lèi)的具體屬性而已,這個(gè)時(shí)候如果使用lombok插件來(lái)寫(xiě)這個(gè)類(lèi),你將看到代碼量會(huì)急劇縮短:
@Getter @Setter @NoArgsConstructor @AllArgsConstructor @ToString public class User { /** 姓名 */ private String name; /** 年齡 */ private Integer age; }
是不是簡(jiǎn)潔多了?多余的樣板代碼lombok幫你全部搞定,只需要寫(xiě)幾個(gè)注解而已。另外如果是maven項(xiàng)目要實(shí)現(xiàn)此功能還需要在項(xiàng)目的pom.xml引入一個(gè)dependency即可。
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <scope>provided</scope> </dependency>
Rainbow Brackets插件官方鏈接:https://plugins.jetbrains.com/plugin/10080-rainbow-brackets
顧名思義【彩虹括號(hào)】。這個(gè)插件的主要功能就是讓原本顏色不分明的代碼括號(hào)顏色變得豐富多彩,方便在復(fù)雜代碼塊中定位括號(hào)范圍。上個(gè)圖感受一下。
Maven Helper插件官方鏈接:https://plugins.jetbrains.com/plugin/7179-maven-helper
快速定位某個(gè)jar包存在于依賴(lài)樹(shù)的位置,按如下操作打開(kāi)插件:
比如要搜索bson相關(guān)的包,直接在搜索框輸入bson,依賴(lài)樹(shù)UI會(huì)實(shí)時(shí)刷新,然后可以在篩選出來(lái)的bson包上右鍵方便地排除或跳轉(zhuǎn)到dependency代碼的位置。
4. Grep Console
Grep Console插件官方鏈接:https://plugins.jetbrains.com/plugin/7125-grep-console
仿Linux下查看日志的grep和類(lèi)似tail | grep命令,安裝完后會(huì)在下圖所示位置出現(xiàn)一個(gè)橡皮擦的圖標(biāo),點(diǎn)開(kāi)有各種設(shè)置,我們用默認(rèn)設(shè)置就好。
在日志區(qū)域右鍵Grep,可以實(shí)時(shí)過(guò)濾日志內(nèi)容。比如我要搜索出現(xiàn)了spring關(guān)鍵字的日志行,可以如下操作。
Free Mybatis Plugin插件官方鏈接:https://plugins.jetbrains.com/plugin/8321-free-mybatis-plugin
此插件是使用mybatis框架的一大福音,在idea上連接了DAO與mapper文件,可以方便的在這兩類(lèi)文件中跟蹤對(duì)應(yīng)的方法
從DAO跳轉(zhuǎn)到mapper,或者從mapper跳回dao就這么簡(jiǎn)單。
FindBugs插件官方鏈接:https://plugins.jetbrains.com/plugin/3847-findbugs-idea
FindBugs是一款分析代碼潛在問(wèn)題的插件,諸如空指針,內(nèi)存泄漏,死循環(huán)等都有良好的提示,例如我們?cè)陧?xiàng)目根目錄右鍵FindBugs分析整個(gè)工程潛在風(fēng)險(xiǎn):
示例工程分析得出詳細(xì)的bug和代碼風(fēng)險(xiǎn)行,并給出了優(yōu)化建議
7. SequenceDiagram
SequenceDiagram插件官方鏈接:https://plugins.jetbrains.com/plugin/8286-sequencediagram
SequenceDiagram可以對(duì)某個(gè)方法生成直觀(guān)的時(shí)序圖,方便在跟蹤復(fù)雜調(diào)用時(shí)不會(huì)跟丟了,我們直接在一個(gè)service方法名上右鍵選擇SequenceDiagram可以看到該方法調(diào)用的時(shí)序圖,點(diǎn)擊其中的圖例并且可以直接跳轉(zhuǎn)到目標(biāo)方法:
8. .ignore
.ignore插件官方鏈接:https://plugins.jetbrains.com/plugin/7495--ignore
在我們開(kāi)發(fā)過(guò)程中有時(shí)候不可避免地在項(xiàng)目中生成了一些log或者其他不需要提交到git的文件,可以只用ignore插件來(lái)排除掉這類(lèi)文件或者目錄。在項(xiàng)目下直接新建一個(gè)ignore文件,可以選擇相關(guān)開(kāi)發(fā)語(yǔ)言的排除模板,這樣就不會(huì)提交到git上了。例如我的工程排除了如下內(nèi)容:
9. CamelCase
CamelCase插件官方鏈接:https://plugins.jetbrains.com/plugin/7160-camelcase
一個(gè)實(shí)用的將變量或方法名轉(zhuǎn)換各種表示形式的小插件,在需要變化的關(guān)鍵字上連續(xù)按下Alt + Shift + U。例如hello world就有以下形式:
HelloWorld
helloWorld
hello_world
hello world
hello-world
HELLO_WORLD
10. Alibaba Java Coding Guidelines
Alibaba Java Coding Guidelines插件官方鏈接:https://plugins.jetbrains.com/plugin/10046-alibaba-java-coding-guidelines
阿里巴巴代碼規(guī)約檢測(cè)的功能更像是FindBugs的擴(kuò)展版,不僅包含了BUG檢測(cè),而且對(duì)代碼的bad smell也有很多友好提示,最重要的是幾乎全是中文~我們點(diǎn)擊項(xiàng)目根路徑然后點(diǎn)擊工具欄上的檢測(cè)按鈕就可以得到詳細(xì)的提示,甚至可以幫你一鍵修復(fù)問(wèn)題!
不要看錯(cuò)了,這個(gè)插件不是JSON格式化工具,而是通過(guò)導(dǎo)入JSON數(shù)據(jù)來(lái)反向生成實(shí)體類(lèi),看圖就能理解。對(duì)于第三方對(duì)接需要生成實(shí)體類(lèi)簡(jiǎn)直不要太方便!
一圖說(shuō)明安裝姿勢(shì),點(diǎn)擊Install Plugin from Disk…選擇要安裝的插件即可。注意部分插件是jar包形式,部分也有zip形式。都可以直接安裝。