微信支付是企業級項目中經常使用到的功能,作為後端開發人員,完整地掌握該技術是十分有必要的。 ...
0. 背景
作為一個 Java 程式員,我相信,絕大多數同學日常都是用 idea 來寫代碼。
Idea 作為宇宙第一 Java IDE,提供了豐富、強大的功能,可以讓你寫 Java 代碼快得飛起來。
遺憾的是,很多人都不知道怎麼開啟 idea 隱藏的強大功能。下麵博主將帶你一起,探究 idea 背後那些強大到逆天的功能。
特別說明:
本文所有實操基於 Mac OSX 系統,其他操作系統(如 Windows,Linux 等)沒有實踐過,不做講解。
非特別說明:
雖然文章標題有點『標題黨』的嫌疑,但是內容絕對不是標題黨文章,乾貨滿滿,請耐心往下看,看完沒收穫直接來北京打我!
1. ToC(目錄)
本文將從以下幾個方面,展開講解:
- keymap
- 常用插件
- 高效配置
- 超好用的快捷鍵
- 神器:Postfix
- 終極神器:Live Template
2. keymap
keymap,就是 idea 的快捷鍵配置方案,本身沒有太多的內容,之所以放到最前面,是因為後續的講解,很大程度上都依賴於 keymap。
建議將 keymap 設置為預設的,比如 Mac 下預設的 keymap 就是 Mac OS X 10.5 +。
這樣當你想使用某個快捷鍵而 Google 時,多數時候,找到的答案都使用的是預設的快捷鍵方案,不然的話,別人的快捷鍵你不一定適用。
3. 常用插件
接下來為大家推薦一些常用的插件,有了這些插件的加持,會讓你的工作事半功倍。
為了方便大家索引,先把推薦的插件列到下麵:
- Lombok
- Key Promoter X
- Alibaba Java Coding Guide
- CamelCase
- GenerateAllSetter
- Codota AI Autocomplete
- GsonFormat
- Grep Console
- MavenHelper
- RestfulToolKit
- RainbowBrackets
- Mybatis Plugin
下麵將逐一介紹這些常用的插件。
3.1 Lombok
插件官網:https://plugins.jetbrains.com/plugin/6317-lombok
這個插件,相信不用多做解釋,寫過 Java 的同學都知道,JavaBean 代碼里有一堆的 set/get,tostring 等方法,非常臃腫。有了 Lombok 之後,再也不用寫這些臃腫的代碼了。
3.2 Key Promoter X
插件官網:https://plugins.jetbrains.com/plugin/9792-key-promoter-x
這個插件的作用是告訴你,你做的某個操作,有哪些快捷鍵可以代替。
有些時候,我們想要做某件事情,比如我想打開 idea 自帶的 terminal,但是我並不知道有快捷鍵可以用,於是我只能傻乎乎的用滑鼠去點開 terminal。
有了這個插件後,當你用滑鼠去點 terminal 時,右下角會有個彈窗提示,告訴你,其實你沒必要用滑鼠去點,直接使用快捷鍵 Alt + F12
就可以了,如下圖:
怎麼樣,是不是很貼心!
3.3 Alibaba Java Coding Guide
插件官網:https://plugins.jetbrains.com/plugin/10046-alibaba-java-coding-guidelines
這個插件,也不做過多解釋。阿裡巴巴官方推出了 Java 開發手冊,這個插件就是檢查你的代碼是否符合手冊規範的,直接安裝吧,相信阿裡巴巴!
舉個簡單的例子,當我要獲取當前時間戳的時候,我這麼寫:long time1 = new Date().getTime()
,這個時候,它就會有報錯提示,告訴你直接使用 long time2 = System.currentTimeMillis()
:
怎麼樣,是不是很智能,又學到了一招吧!
3.4 CamelCase
插件官網:https://plugins.jetbrains.com/plugin/7160-camelcase
這個插件的作用是對字元串做格式上的轉化: kebab-case, SNAKE_CASE, PascalCase, camelCase, snake_case or space case 等。
典型的應用場景是,比如我們資料庫裡面的欄位,用的是下劃線的格式,但是 Java 裡面的欄位,用的是駝峰的格式。
我們怎麼保證不會因為手殘導致資料庫欄位和 Java 欄位對不上呢?比如資料庫欄位是 your_name,一不小心 Java 里寫成了 youName。
當你遇到問題的時候,估計查到哭都查不出來,Java 裡面的欄位少了個 'r'。
這種情況下,CamelCase 插件就派上用場了。使用快捷鍵 Alt + Shift + u,就可以在各種格式之間切換了,很容易就可以把 your_name 變成 yourName。
如下所示:
當然,鑒於多數情況下,Java 不存在 kebab-case/space case 即 中劃線/空格 連接方式,你還可以在配置中設置,格式切換時去掉他們,這樣切換時,按 Alt + Shift + u 的次數就可以少些,配置方法如下:
3.5 GenerateAllSetter
插件官網:https://plugins.jetbrains.com/plugin/9360-generateallsetter
這絕對是一個特別值得推薦的插件,能夠 save your life !
在我們寫代碼的時候,經常會有各種 dto 之間的轉化,比如從資料庫的 User 轉化為前端的 UserVO。
如果是你自己寫,先不說寫一堆 get/set 累不累,最關鍵的是,我怕寫漏了某個欄位!比如 User 有 10 個欄位,最後到 UserVO 只有 9 個了,哭都沒地方哭!
總不能一個個數吧?這時候 GenerateAllSetter 就出來拯救你了!他可以自動的幫你生成 UserVO 所有的 set 方法,更智能的是,如果 UserVO 和 User 欄位名一樣,它還會自動幫你生成 get!如下圖所示:
當我需要將 User 轉化為 UserVO 時,在我寫好方法聲明後,按下 Alt + Enter,選中 Generate setter getter converter,他就自動幫我寫好轉化的代碼了!
怎麼樣,是不是 6 得飛起,媽媽再也不用擔心我寫漏欄位了!
題外話:
可能有些人會有疑問,不就是個 DTO 轉化嗎?我用 BeanUtils 等工具不香嗎?還真是不香,這玩意有很多坑,性能是一方面,關鍵是當欄位名不一樣時,很難察覺到
3.6 Codota AI Autocomplete
插件官網:https://plugins.jetbrains.com/plugin/7638-codota-ai-autocomplete-for-java-and-javascript
關於 AI 插件,目前我就推薦這一個,確實比較強大(好多 AI 插件,名曰人工智慧,其實人工智障,還卡得要死)。貼一個 gif 大家感受下:
當你想初始化一個 List
當然上面舉的例子只是 Codota 很小的一個智能提示,其他更多留給大家探索。
總之,很多時候,它的智能提示很強大,能省去你不少時間,省得你一個個敲代碼了!
3.7 GsonFormat
插件官網:https://plugins.jetbrains.com/plugin/7654-gsonformat
這個插件的作用,就是根據 json 字元串,自動生成 Java bean。先放個官網的 gif 吧:
這裡使用的快捷鍵是:Alt + s。
這裡需要註意的一點是,gsonformat 插件支持自定義 json 反序列化庫,比如 jackson,gson 等,可以在 setting 裡面設置,如下圖:
3.8 Grep Console
插件官網:https://plugins.jetbrains.com/plugin/7125-grep-console
這個插件的作用是對 idea 預設的 Console(控制台)做增強,比如預設的控制台輸出的日誌,不管日誌級別是什麼,都是沒有顏色區分的。
有了這個插件後,ERROR、WARN 等不同級別的日誌,會展示成不同的顏色,方便我們一眼就看出來有沒有錯誤日誌等。
預設的配色方案如下:
具體的顏色配置以及更多的功能,可以參考插件官網。
3.9 Maven Helper
插件官網:https://plugins.jetbrains.com/plugin/7179-maven-helper
平時我們的 maven 項目,會遇到一些依賴衝突的問題,比較難以排查和定位。有了這個插件後,能夠方便的顯示出來有哪些依賴衝突,而且還可以自動加上 exclude,操作界面如下圖:
3.10 RestfulToolKit
插件官網:https://plugins.jetbrains.com/plugin/10292-restfultoolkit
這個插件的作用是,幫助我們快速導航到指定 url 請求路徑的 controller 方法。平時我們的項目會寫大量的 controller 以及方法,來處理不同的 url 請求。
但是當代碼多了以後,很難找到某個 url 是哪個方法處理的,有了這個插件,就可以快速根據 url 導航到具體的方法。
快捷鍵是 cmd + \。
3.11 Rainbow Brackets
插件官網:https://plugins.jetbrains.com/plugin/10080-rainbow-brackets
這是一款提升 idea 顏值的插件。我們寫的代碼,經常會有很多嵌套的括弧,比如 get1(get2(get3())),這麼多的括弧嵌套,而且顏色都還一樣,會看得人眼花繚亂。有了這個插件,會給每一對括弧都顯示上不同的顏色,增加顏值的同時,也較方便的看出哪些括弧是一對:
好了,到這裡,推薦的常用插件就介紹完了。大家可以根據需要,自由安裝哪些插件。記住:插件雖好,可不要貪杯哦!
如果你也有好用的插件推薦,歡迎聯繫我,一起探討學習!
4. 高效配置
Idea 確實是一款非常非常優秀的 Java IDE。所謂好馬還得好鞍配,下麵介紹的一些高校配置,可以讓你使用 idea 的時候,更舒適、更高效!
4.1 import 自動導入包和刪除無用的 import
設置路徑:Editor -> General -> Auto Import。
勾選其中的 add on the fly 和 optimize on the fly,如下圖:
4.2 避免 import *
預設情況下,當 import 同一個包的 class 超過 5 個後,idea 會替換成 import *。但是通常我們不建議這樣寫,遵循的原則就是使用哪些就明確寫引用哪些!
設置路徑:Editor -> Code Style -> Java -> Imports。
將 Class count to use import with 、Names count to use static import with * 都設置為 999(預設都是 5),如下圖:
4.3 保存文件時自動去掉末尾空格
設置路徑:Editor -> General -> Other。
Strip trailing space on Save 選 All,如下圖:
4.4 智能提示不區分大小寫
設置路徑:Editor -> General -> code completion。
取消勾選 match case,如下圖:
5. 超好用的快捷鍵
這一章節,將推薦一些超好用的快捷鍵。有了這些快捷鍵的加持,不僅能夠節省你大量的時間,還能讓你寫出更優秀的代碼!
5.1 萬能提示神器:Alt + Enter
如果你只想記住一個快捷鍵的話,我推薦這個!Alt + Enter 是一個萬能提示器,可以用說是好用到爆炸