用 IDEA 寫程式碼的時候往往會重複性地寫一段類似或者一樣的程式碼,讓人懊惱不已。
IDEA 自帶了一個 Live Template 功能,不僅有許多自帶的快捷寫程式碼的功能,而且還可以自定義屬於自己的 Live Template。
自定義命令#
可以自定義一些命令。 打開 IDEA 的設置,找到 Live Template,右側添加,可以先添加一個自己的分組,比如我添加了一個My Live
的分組,再添加具體的配置
設置中的 Live Template
變數用$$
包裹,IDEA 就知道這是一個變數了,變數可以在右下角的Edit variables
中賦值
其中,Expression
列可以為變數設置一個計算方法,比如className()
說明CLASS
變數為當前類名,也可以在Default value
上指定一個默認值。 最後一列如果勾選的話,使用的時候如果這個變數計算出值了則不提示用戶進行輸入賦值。
以下是我自己使用的一些例子
logger 定義#
Template text
private static final Logger logger = LoggerFactory.getLogger($CLASS$.class);
Variables
Name | Expression | Default value | Skip if defined |
---|---|---|---|
CLASS | className() | ☑️ |
效果
logger 定義
返回 ModelAndView#
Template text
@RequestMapping("/$NAME$.html")
public ModelAndView $NAME$(HttpServletRequest request, HttpServletResponse response) {
logger.info("****************$CLASS$:$NAME$ 開始****************");
logger.info("****************$CLASS$:$NAME$ 結束****************");
return new ModelAndView("$NAME$/$NAME$");
}
Variables
Name | Expression | Default value | Skip if defined |
---|---|---|---|
NAME | |||
CLASS | className() | ☑️ |
效果
返回 ModelAndView (有 url 參數)#
Template text
@RequestMapping("/$NAME$/{$PATHVARIABLE$}.html")
public ModelAndView $NAME$(@PathVariable("$PATHVARIABLE$") String $PATHVARIABLE$, HttpServletRequest request, HttpServletResponse response) {
logger.info("****************$CLASS$:$NAME$ 開始****************");
logger.info("****************$CLASS$:$NAME$ 結束****************");
return new ModelAndView("$NAME$/$NAME$");
}
Variables
Name | Expression | Default value | Skip if defined |
---|---|---|---|
NAME | |||
PATHVARIABLE | |||
CLASS | className() | ☑️ |
效果
新建 Controller#
Template text
@RestController
public class $ControllerName$Controller {
private static final Logger logger = LoggerFactory.getLogger($ControllerName$Controller.class);
/**
* $viewName$
*/
@RequestMapping("/$viewName$.html")
public ModelAndView $viewName$(HttpServletRequest request, HttpServletResponse response) {
logger.info("****************$ControllerName$Controller:$viewName$ 開始****************");
logger.info("****************$ControllerName$Controller:$viewName$ 結束****************");
return new ModelAndView("$viewName$/$viewName$");
}
}
Variables
Name | Expression | Default value | Skip if defined |
---|---|---|---|
ControllerName | |||
viewName |
效果
自帶命令#
也可以使用自帶命令來模板式地補全語句,如遍歷循環語句(for、foreach)、使用 String.format () 包裹一個字符串、使用類型轉化包裹一個表達式、根據判(非)空或者其它判別語句生成 if 語句、用 instanceOf 生成分支判斷語句等。 使用的方式也很簡單,就是在一個表達式後按下點號 . ,然後輸入一些提示或者在列表中選擇一個候選項,常見的候選項下面會給出 GIF 演示。
var 聲明#
null 判空#
notnull 判非空#
nn 判非空#
for 遍歷#
fori 帶索引的遍歷#
not 取反#
if 條件判斷#
cast 強轉#