Idea使用Live Templates將常見的構造插入程式碼中,例如迴圈,條件,各種宣告或列印語句。如下圖
靜態內容輸出
迴圈、判斷
官方預定義Java模板
預定義Java模板
熟練使用Idea提供的live templates能夠極大地加快開發速度,但是Idea提供的模板相對簡單,只能滿足日常重複的迴圈、判斷、輸出等。
建立簡單模板
在編輯器中,選擇程式碼片段以從中建立Live templates。
在主選單中選擇 Tools | Save as Live Template... 實時模板列表將開啟。 在此列表中,選擇的程式碼片段將作為新建立的模板新增到user組中。
指定模板的縮寫,可選描述(以標識模板的用途)並修改模板主體。 如果模板定義了變數,單擊“Edit Variables”進行配置。
完成設定後單擊“確定”完成配置。
接下來在程式碼中輸入剛建立的模板的縮寫+Tab,就會看到模板生成的程式碼了。
GroovyScript高階模板
如果要按照業務的特性製作複雜,自動內容處理的模板,就需要使用到GroovyScript來製作高階的Live templates了。
比如,Controller中主要存在增刪改查,每個方法通用的寫法是固定的,比如入參Dto,響應Vo。並且所有的方法必須加Swagger註解等特性。那麼為了大家定義介面更加規範,書寫效率更高,就可以將此定義成模板進行復用。
定義模板:Performance -> Editor -> Live Templates.
@ApiOperation(value = "按id查詢", notes = "按id查詢XXX", response = $VO$.class)@GetMapping("one/{id}")public ResponseEntity<$VO$> queryEntityById(@PathVariable @ApiParam("物件id") String id) { $VO$ vo = this.$SERVICE$.queryEntityById(id); return ResponseEntity.ok(vo);}
示例程式碼中可以看到,定義了兩個變數VO和SERVICE。在使用時,需要根據提示填寫這兩個變數。這裡我們將GroovyScript,用指令碼來生成預設的變數,在程式碼生成以後,一路回車確認來生成模板程式碼。
模板變數編輯
這樣編輯好即可,但截圖中的變量表達式如何編輯呢?
groovyScript("def className = _1;return className.substring(0, className.length()-10) + \"Vo\";", className())
groovyScript指令碼:
第一個引數是指令碼程式碼,這裡可以定義變數,寫邏輯。
第二個,第三個引數就是為指令碼程式碼傳遞的引數。這裡我們傳遞className(),把類名傳遞進指令碼中做處理。
接收引數,指令碼第一個引數為_1, 第二個就是_2, 以此類推。
在這個示例中,VO,我們就定義為DemoController,去掉Controller字尾後,增加Vo字尾。作為VO變數的預設命名,最終結果就是DemoVo。
SERVICE類似,最終結果就是demoService。
按照Id獲取資料寫完後,就可以寫根據id修改資料,根據條件查詢分頁資料等介面了。
Controller介面寫完以後,還可以完成Service介面的書寫。
經過上面的努力,寫規範的程式碼就再也不愁了。