美文网首页
IDEA配置之模板代码生成

IDEA配置之模板代码生成

作者: OnlyOne2048 | 来源:发表于2020-08-27 12:41 被阅读0次

    前言: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代码生成器。这里就不一一赘述,想要了解的话就请自行百度吧。

    相关文章

      网友评论

          本文标题:IDEA配置之模板代码生成

          本文链接:https://www.haomeiwen.com/subject/vjzfsktx.html