前言
這裏主要介紹我平常真正用到且比較好用的idea插件,方便大家加快開發效率,部分圖片gif借鑑自網絡,雖然大多也有很多博客介紹過,但在公司技術分享時發現不管是新人和老人完全不知道這些插件,所以做了整理
一、功能性插件
1.lombok (項目必備)
支持lombok的各種註解,從此不用寫getter setter這些 可以把註解還原爲原本的java代碼 非常方便。
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>版本</version>
<scope>provided</scope>
</dependency>
1.1.@Data
@Data註解在類上,會爲類的所有屬性自動生成setter/getter、equals、canEqual、hashCode、toString方法,如爲final屬性,則不會爲該屬性生成setter方法。
1.2.@Getter/@Setter
如果覺得@Data太過殘暴(因爲@Data集合了@ToString、@EqualsAndHashCode、@Getter/@Setter、@RequiredArgsConstructor的所有特性)不夠精細,可以使用@Getter/@Setter註解,此註解在屬性上,可以爲相應的屬性自動生成Getter/Setter方法,
1.3.@NonNull
該註解用在屬性或構造器上,Lombok會生成一個非空的聲明,可用於校驗參數,能幫助避免空指針。
示例如下:
import lombok.NonNull;
public class NonNullExample{
private String name;
public NonNullExample(@NonNull Person person) {
this.name = person.getName();
}
}
1.4.@Cleanup
該註解能幫助我們自動調用close()方法,很大的簡化了代碼。
示例如下:
import lombok.Cleanup;
import java.io.*;
public class CleanupExample {
public static void main(String[] args) throws IOException {
@Cleanup InputStream in = new FileInputStream(args[0]);
@Cleanup OutputStream out = new FileOutputStream(args[1]);
byte[] b = new byte[10000];
while (true) {
int r = in.read(b);
if (r == -1) break;
out.write(b, 0, r);
}
}
}
如不使用Lombok,則需如下:
import java.io.*;
public class CleanupExample {
public static void main(String[] args) throws IOException {
InputStream in = new FileInputStream(args[0]);
try {
OutputStream out = new FileOutputStream(args[1]);
try {
byte[] b = new byte[10000];
while (true) {
int r = in.read(b);
if (r == -1) break;
out.write(b, 0, r);
}
} finally {
if (out != null) {
out.close();
}
}
} finally {
if (in != null) {
in.close();
}
}
}
}
1.5.@EqualsAndHashCode
默認情況下,會使用所有非靜態(non-static)和非瞬態(non-transient)屬性來生成equals和hasCode,也能通過exclude註解來排除一些屬性。
@EqualsAndHashCode(exclude={"id", "name"})
1.6.@ToString
類使用@ToString註解,Lombok會生成一個toString()方法,默認情況下,會輸出類名、所有屬性(會按照屬性定義順序),用逗號來分割。
可以指定包含和不包含的屬性
@ToString(exclude="id")
1.7.@NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor
無參構造器、部分參數構造器、全參構造器。Lombok沒法實現多種參數構造器的重載。
1.8.@Slf4j 代替我們手寫的日誌
@Slf4j
@RestController
@RequestMapping(value = "/harbour")
public class HarbourController {
}
2.Translation (翻譯插件)
開源地址:https://github.com/YiiGuxing/TranslationPlugin
2.1.Show Translation Dialog
打開翻譯對話框。默認顯示在工具欄上。默認快捷鍵:
2.2.Translate
取詞並翻譯。如果有已選擇的文本,優先從選擇的文本內取詞,否則默認以最大範圍自動取詞(該取詞模式可在Settings中配置)。默認顯示在編輯器右鍵菜單上,默認快捷鍵:
2.3.Translate and Replace
翻譯並替換。取詞方式同Translate
操作。默認顯示在編輯器右鍵菜單上,默認快捷鍵:
3.Maven Helper
- 原來的maven的操作方式
- 安裝插件後可以直接在項目目錄上操作,無需在右側一層層展開目錄查找想要的命令
這個插件只有當你經常需要操縱maven的時候你纔會發現他的方便之處
4.Alibaba Java Coding Guidelines
安裝完成後你會發現你代碼中不規範的地方全都給你標註出來了,也提供了部分問題alt+enter的快速解決方案
使用如上方式,可對代碼進行系統化掃描,產生一個清單
5.GsonFormat
一鍵根據json文本生成java類 非常方便
6.MyBatisCodeHelperPro(mybatis框架下請一定要使用一下,是我最喜歡的插件,他比想象的還要強大)
mybatis代碼自動生成插件,大部分單表操作的代碼可自動生成 減少重複勞動 大幅提升效率,作者更新版本和修改bug都很及時。
- 該軟件爲收費軟件29/年 2個碼 等於1年15元,按我所在公司的底層框架來說絕對是物超所值
購買地址:http://brucege.com/pay/view - 具體詳細的使用方法這裏就不多做介紹了下面是原作者的文檔地址,請務必點進去看一下這個插件的功能
https://gejun123456.github.io/MyBatisCodeHelper-Pro/#/
7.GenerateAllSetter
一鍵調用一個對象的所有set方法並且賦予默認值 在對象字段多的時候非常方便
8.String Manipulation(強大的字符串轉換工具)
快捷鍵:alt + M
9.Restfultookit
9.1.快速定位接口
Spring MVC網頁開發的時候,我們都是通過requestmapping的方式來定義頁面的URL地址的,爲了找到這個地址我們一般都是ctrl+shift+F的方式進行查找,大家都知道,我們URL的命名一個是類requestmapping+方法requestmapping,查找的時候還是有那麼一點不方便的,restfultookit就能很方便的幫忙進行查找。
只要雙擊即可跳轉到對應的controller接口中
9.2.自動生成請求參數並可發送請求
-
根據我們的controller幫我們生成默認的測試數據,還能直接調用測試,這個可以是解決了我們每次postman調試數據時,自己傻傻的組裝數據的的操作,這個更加清晰,比在console找數據包要方便多了
-
只需要將請求地址和數據複製到postman對應區域即可進行測試
9.3.ShowDoc中快速生成請求參數表格和返回數據
一個非常適合IT團隊的在線API文檔、技術文檔工具,可以代替swagger的使用,手動管理生成文檔,
在編寫的時候就可以和插件相結合
網站地址:https://www.showdoc.cc/
是不是比原來手寫數據簡單了許多
10.Sql Generator
-
想自己寫sql但是又不想打字段,選擇其中一個
-
直接粘貼
SELECT id, area_name, country_id, pinyin, pinyin_initials, sort, english_name, state, is_deleted, create_by, create_time, update_time FROM area WHERE id = ?
11.Jrebel(熱部署)
jrebel是可以熱部署項目的一個工具,更改代碼自動部署並不需要重啓項目(在spring中的controller中,增加、修改方法都是可以進行熱部署而不需要重啓的),極大的提高工作效率。
- 開啓修改代碼更新資源的配置
- 啓動
二、裝飾性插件
1.Rainbow Brackets
他可以幫助我們寫代碼時有的時候嵌套太多格式又比較亂,他可以幫我們從顏色上區分括號的對應關係
2.CodeGlance
在右側多一個全局預覽條
3.activate-power-mode
這是一款讓你在編碼的時候,整個屏幕都爲之顫抖的插件。這個我一開始裝了,後來就懶得用了