使用Live Template 增加开发效率
## 背景
最近在开发一个新项目,在写新类的时候要加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能让你编写代码幸福感上升好几层,值得大家拥有!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
web3j官网中文版
web3j是一个轻量级、高度模块化、响应式、类型安全的Java和Android类库提供丰富API,用于处理以太坊智能合约及与以太坊网络上的客户端(节点)进行集成。 可以通过它进行以太坊区块链的开发,而无需为你的应用平台编写集成代码。 本文是对web3j官网的完整翻译,大家可以参考。 阅读全文 » 当然如果希望有一个快速入门的web3j内容,并且最好是边练习实例边学习的实操教程的话。 我们有一个web3j教程可以满足需要,专门详细的讲解区块链、以太坊、web3j。
- 下一篇
使用Guava 缓存的一次重构
前端时间看了一个guava教程, 然后项目中正好用到一个缓存的场景,于是用它的缓存重构了原来的代码。 背景 业务背景如下:有一个配置项rootStaff,一个耗时的运算从rootStaff下拿到一堆关联的staff,得到一个staffList。rootStaff可配置可更改,staffList可能会因为员工入职离职而变化,所以每天要更新一下计算结果。 根据以上业务背景,我们需要缓存rootStaff和staffList, 如果rootStaff和缓存不一样或者时间过期了就需要重新计算。 Guava缓存简析 guava缓存主要参考了这篇文章,这里就不再复述。 实现 在设计怎么构造和调用缓存时我还是想把它写成一个缓存工具类和一个业务类,虽然目前还没有第二个地方调用工具类,只是那样看上去会更清晰一些。 对缓存工具类,由于我想做成更业务无关些,所以打算采用get(K, Callable<V>)方法而不是build时候传入方法。然后缓存策略默认写死一天过期以后也可以方便的改。 另外由于我们缓存可能会因为外部配置项rootStaff改变而改变,我加了一个cleanCache的方法。 c...
相关文章
文章评论
共有0条评论来说两句吧...