IDEA配置之模板代码生成

前言:IDEA有着非常强大的代码生成功能。通过这个功能,我们可以很便捷的生成javaDoc,也可以通过输入简短的代码缩写而输出完整代码,比如输入sout的时候就会自动生成"System.out.println();"。如何才能自定义设置代码生成呢?今天就来简单总结一下。

就我目前所知道的,IDEA的代码生成大致有四种:创建文件时生成、实时模板生成、第三方代码生成器以及我们所熟知的"Alt+Insert生成",四个方法各有其使用场景。

创建文件时生成

对应设置的位置如下:

image-20200826141715597

凡是在这里设置的代码模板,都会在文件创建时自动生成。在右边的选项框中,有三个子菜单,分别是File、Includes、Code、Other,这里我主要说一下我们经常使用的File与Include

File菜单是以文件类型划分,在使用IDEA创建某种格式的文件时,就是从这个模板中生成,这也就解释了为什么IDEA会根据文件类型生成相应的基础代码。强调一点,这里的模板不要轻易的修改,如果不小心删除了某些关键代码,可能会出现无法生成对应文件的现象。

那我们可以通过它干什么呢?我想到了两点:

自定义文件模板

比如在使用Mybatis时需要生成很多的XXXMapper.xml文件,不经过设置的话我们只能先创建一个空的xml文件,然后再手动敲或者复制各种标签,十分麻烦。

我们就可以手动添加一个有关mapper文件的xml模板,省去不少麻烦。具体步骤如下:

image-20200826144549343

之后每当我们想要创建mapper文件时就可以选择它,自动生成代码结构:

image-20200826144727069

image-20200826144839059

创建java文件时自动生成类注释

首先展示一下效果,比如创建一个student类,文件生成后的效果如图:

image-20200826145223499

做到这种效果其实很简单,不过在设置前先要说一个Include选项,如下:

image-20200826145345581

按照我的理解,Include选项里的模板是对Files文件模板的抽象,即某些Files文件模板的共有部分,也即Files里的模板可以引用Include选项中的模板,就拿创建java文件时自动生成类注释说吧。

从上图可以看到一个叫做File Header的模板,这个模板是IDEA自带的,翻译过来应该就是文件头部代码的意思吧。我们可以将其设置成如下格式:

/**
* @author: ${USER}
* @create: ${YEAR}-${MONTH}-${DAY} ${HOUR}:${MINUTE}
* @description: ${description}
**/

就是一个注释模板,指明了作者、创建时间、以及描述的信息,当然也可以设置其他信息,只需要加入一个个的${XXX}就行了,设置属性的话代码框下面的Description里就有。

然后依次点击FilesClass,在public class ${NAME}上方输入#parse("File Header.java")(如果该语句请忽略本操作),从而引入我们刚刚编写好的File Header。然后再依次对Interface、Enum等各类模板进行相同设置。

image-20200826150614143

这样就大功告成了,以后每当我们创建java文件就会自动生成类注释了。

实时生成

第一种代码生成方案固然很好使,但并不能解决所有问题,因为我们在工作中不仅需要生成类注释,还有方法注释、甚至是属性注释啊。

不用担心,对于这个问题,IDEA也给我们想到了,那就是Live Templates。下面就以自动生成方法注释为例

自动生成方法注释

IDEA主页面输入Ctrl+Alt+S进入设置页面,依次点击Live Templates和Template Group:

image-20200826152100143

Template Group表示添加一个模板组,Live Template表示添加一个实时模板, 我们先创建一个自己的模板组,再在其中创建我们自己的模板,当然也可以不创建模板组,直接在已有的模板组中创建。模板组名自定义,我这里起MySelf

image-20200826152516695

然后点击右边的小加号,点击Live Template

image-20200826152647846

输入模板名及描述,为了方便使用,名字尽量不要设置太长,这里设置为m

image-20200826165227241

然后点击上图的Define,选择java,表示这个模板作用在java文件中

image-20200826153054322

然后将以下代码复制到代码框,Expand with选择Tap,即以tap方式触发

*
 * @description: $description$
 * @author: $user$
 * @create: $date$
 * @param: $params$       
 * @return $return$
 **/

image-20200826164734667

然后点击Exit varialbles,进行参数映射,设置如下:

image-20200826165314441

其中,params选项的Expression为:

groovyScript("def result=''; def params=\"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split('<').toList(); for(i = 0; i < params.size(); i++) {if(i!=0){result+='<';};  def p1=params[i].split(',').toList();  for(i2 = 0; i2 < p1.size(); i2++) { def p2=p1[i2].split('\\\\.').toList();  result+=p2[p2.size()-1]; if(i2!=p1.size()-1){result+=','}  } ;  };  return result", methodReturnType())

之后点击OK、Apply即可设置成功!

现在,在任意java方法上都可以使用该模板,触发输入是:/*模板名,我这里就是/*m,然后再点击Tab键即可生成注释

效果如下所示:

/**
 * @description: 这是一个XXX方法
 * @author: OnlyOne
 * @create: 2020/8/26
 * @param: [param1, param2]
 * @return Long
 **/
public Long method(Integer param1, Integer param2) {
    return id;
}

如果想更改模板,可以参考一下内容:

Idea中文文档

https://blog.csdn.net/u014044812/article/details/76577479

Alt+Insert代码生成

相信这种方法无需多言,大家基本上每天都在用的一种代码生成方法。但为了照顾纯小白,也在这里列出:

键盘按下Alt+Insert,然后选择要生成的代码:

image-20200826170445922

第三方代码生成

第三方代码生成方案那就太多了,有的是Idea插件,有的是代码生成器,不如Mybatis Plus代码生成器。这里就不一一赘述,想要了解的话就请自行百度吧。

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值