## 背景
最近在开发一个新项目,在写新类的时候要加log对象:
private static final Logger log = LoggerFactory.getLogger(ExperienceController.class);
然后每次都忘,于是想看看有没有什么办法能简化这个流程,最后用了intellij 的live templates
## Live Template
关于live template的介绍参照这里 和 这里, 它主要作用是能自定义一些代码片段的快捷方式,然后通过代码提示能快速的帮你生成代码。
它的配置地方和快捷键如下:
Intellij已经集成了一些快捷项了,比如
这样你输入sy时候会提示:
按下tab键后会生成:
光标会停留在$END$处的地方方便你编辑。
除此之外,live templates还支持定义一些变量和一些内置函数,具体可以参考上面的官方文档。
另外在写新的template时候要定义使用场景,即最下方的:
点击define会弹出一个对话框:
你可以选择希望什么时候提示你的template。
实践
下面简单介绍一下我自己写的几个例子
第一个是生成log对象的例子:
输入后生成代码:
这里用到了一个变量供用户输入classname
第二个例子涉及两个变量,这个使用场景是自己写了个处理response的类,对每个需要返回reponse的地方都要调用它:
输入comrepn后生成代码:
输入第一个变量后光标自动跳到第二个变量处:
最后一个例子涉及变量之间的函数。这里的场景是jackson把一个类转换成一个json时候需要自定义那个key,由于json里我用的是下划线的,java里又是camel的,所以我希望只需要编辑一个地方自动生成另一个地方。先看一下定义的template.
点击右边的edit variables:
所以这边的逻辑就是输入NAME时候会自动生成ToCamelCase的变量名,完了以后再输入type。
效果如下:
在输入jsonproperty的时候下面变量名会跟着变,直到输入回车会跳到输入类型的地方。
总的来说live template能让你编写代码幸福感上升好几层,值得大家拥有!