用 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 强转#