专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

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

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

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

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

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

鲜花少许。

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

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

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

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

89_1.png

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

日志相关

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

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

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

89_2.png

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

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

我们点击 Edit variables,可以编辑变量信息。 89_3.png

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

89_4.png

这里讲一下这三个

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

89_5.png

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

为什么叫log1?

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

断言相关

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

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

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

89_6.png

  • 还有 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

89_7.png

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

89_8.png

然后是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$

变量配置 89_9.png

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

89_10.png

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

总结

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

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

89_11.png

本文使用 tech.souyunku.com 排版

文章永久链接:https://tech.souyunku.com/33736

未经允许不得转载:搜云库技术团队 » 一步一步打造属于你的最强神兵Idea

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们