一步一步打造属于你的最强神兵Idea

一步一步打造属于你的最强神兵Idea很久很久以前,那时候还是eclipse的天下,还有一款收费的MyEclipse,直到IntelliJ IDEA横空出世,JetBrains这家捷克的软件开发公司是真的懂程序员。 不敢说eclipse已经走向没落,至少IntelliJ IDEA已经占据了半壁江山。 其实eclip…

一步一步打造属于你的最强神兵Idea

很久很久以前,那时候还是eclipse的天下,还有一款收费的MyEclipse,直到IntelliJ IDEA横空出世,JetBrains这家捷克的软件开发公司是真的懂程序员。

不敢说eclipse已经走向没落,至少IntelliJ IDEA已经占据了半壁江山。

其实eclipse也很好用,当年我也装了很多插件,自己创建了很多代码模板,还替换了一个jar包,代码提示可以和idea一样,写起代码来,比idea一点也不差,不过后来还是转向了idea的阵营。

鲜花少许。

我是一个喜欢鼓捣工具的人,可以说我的idea是最好用的,就是这么不谦虚🤣

接下来让我带你一起打造属于你的最强神兵Idea

快捷键我就不说了,每个人的习惯不同,而且Windows系统和Mac系统也不一样。我的大部分快捷键使用的是eclipse的快捷键🥶

首先是代码模板,又叫 Live Templates

一步一步打造属于你的最强神兵Idea

在这里我们可以自定义代码模板,其实很多人都知道,我自定义了几十个,这里说几个我最喜欢的,也是最常用的。

日志相关

写代码避免不了打印日志,可是写日志真的浪费时间啊,而且日志还不能随便写,还要便于追踪。

我使用的是 类名_方法名_变量名的方式来打印日志。可是这样写下来,能把人累死。

所以我创建了一个log1的代码模板,别忘了配置为Java程序使用的,嫌麻烦就选择所有

一步一步打造属于你的最强神兵Idea

log.info("$ClassName$_$MethodName$_$VAR1$:{}", $VAR1$);

$ClassName这种东西是一个变量,我们还要告诉idea这代表什么意思。

我们点击 Edit variables,可以编辑变量信息。 一步一步打造属于你的最强神兵Idea

可以看到里面有很多表达式

一步一步打造属于你的最强神兵Idea

这里讲一下这三个

  • className() 看名字就知道,就是类名
  • methodName() 看名字也知道,这个是方法名
  • variableOfType("") 这个是让idea自动推断,自动填入最适合的。

一步一步打造属于你的最强神兵Idea

只需要输入log1就全好了,最后那个是可以根据提示选择的。

为什么叫log1?

因为这是一个变量的,日志一般都会打好几个变量,所以我有log1log5,最多可以支持5个变量。还有这个日志的级别是info,我还创建了一个log1e,用来打印error级别的。

断言相关

Spring中断言是真的好用,很多时候我们会使用Assert.isTrue(),如果表达式里面的数据可以自动填充就好了,你想到了什么?

  • variableOfType("") 这个是让idea自动推断,自动填入最适合的。

我定义了一个ass1Assert.isTrue($VAR$.size() == 1, "$END$!"); 主要用户判断list的大小。我们要配置一下$VAR$variableOfType("")$END$不需要配置参数,它代表的意思是,最后光标的位置,这里我们可以写一些异常信息。

一步一步打造属于你的最强神兵Idea

  • 还有 assd,要求大于0
    Assert.isTrue($VAR$.size() > 0, "$END$!");
  • assle,要求小于0
    Assert.isTrue($VAR$.size() <= 0, "$END$!");
  • assn,要求不能为空
    Assert.isTrue($VAR$ != null, "$END$!");
  • assnn,要求为空
    Assert.isTrue($VAR$ == null, "$END$!");
  • asss,要求字符串不为空
    Assert.isTrue(StringUtils.isNotBlank($VAR$), "$END$!");
  • asst,要求表达式为true
    Assert.isTrue($VAR$, "$END$!");

可以看出大部分场景我都配置了模板,没办法,就是懒啊😂

接口相关

因为使用了Swagger,每次写接口都要写一堆注解,我配置了两个模板pmgm

先看gm

gm就是GET方式请求的接口。

@ApiOperation("$VAR2$")
@ApiImplicitParams({
  @ApiImplicitParam(name = "", value = "", required = true),
})
@GetMapping(value = "/$VAR1$", name = "$VAR2$")
public HttpResult $VAR1$(){
    $END$
    return HttpResult.success();
}

这里的$VAR1$$VAR2$也是variableOfType

一步一步打造属于你的最强神兵Idea

请求路径和方法名一样,ApiOperationvalueGetMappingname也一样。

一步一步打造属于你的最强神兵Idea

然后是pm

pm其实一样的,只不过GetMapping换成了PostMapping

@ApiOperation("$VAR2$")
@ApiImplicitParams({
  @ApiImplicitParam(name = "", value = "", required = true),
})
@PostMapping(value = "/$VAR1$", name = "$VAR2$")
public HttpResult $VAR1$() {
    $END$
    return HttpResult.success();
}

最后一个:下划线转驼峰命名

很多时候数据库新增了一个字段,可是是使用下划线间隔命名的,我们复制到类里,手动一个个改,很麻烦。

所以我创建了一个模板xscs,唯一的缺陷是转换后,无法删除之前的,要手动删除之前的,我查了模板里面的变量是不支持删除的。

$SELECTION$$END$$VAR$ 

变量配置 一步一步打造属于你的最强神兵Idea

$SELECTION$表示是要对选择的字符串转换。

一步一步打造属于你的最强神兵Idea

光标前面那一串是我手动删除的🤣

总结

今天先到这里,代码模板是很有用的东西,可以帮我们少做很多重复的工作,如果有一块代码,你经常写,差别又不大,你可以试着把它配置为代码模板。

欢迎大家关注我的公众号,共同学习,一起进步。加油🤣

一步一步打造属于你的最强神兵Idea

本文使用 mdnice 排版

今天的文章一步一步打造属于你的最强神兵Idea分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/20289.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注