工欲善其事,必先利其器。IDEA是Java后端程序员必备的开发IDE,上面有着丰富的插件可以大大提升开发效率,这篇文章推荐几个我认为不错的IDEA插件
1.Lombok
Lombok是个很优秀的插件,也是我安装IDEA后最先安装的插件,它方便快捷,用注解和模板代码的形式让代码非常简洁。
首先搜索插件,安装,

使用时也非常方便,这是一个常用的例子,也是我比较喜欢使用的,首先@Data相当于生成了成员变量的get/set方法,然后链式赋值的写法会让初始化一个类特别的方便,代码也十分优雅。
@Data@Accessors(chain = true)@NoArgsConstructorpublic class TestLombok {private String name;private Integer age;public static void main(String[] args) {TestLombok lombok = new TestLombok().setAge(10).setName("j4fan");System.out.println(lombok.getName());}}
除此之外还有@Builder(建造者的形式初始化类),@SneakyThrows(欺骗Jvm编译时忽略报错,慎用)等其他注解。
当然Lombok被网友喷的也很惨,很多人不愿意用,有以下原因:
传染性 即如果你的代码使用了Lombok,其他依赖于你jar包的项目也需要使用Lombok才可以看你的源码。这对于开源软件或者大型组织里的软件确实有些向别人强推的意思。
代码可读性 这里通常说的是例如用了@Data,就无法像以前那样点set方法,右键findUsage就可以找到使用set方法的代码了。
隐形规则带来的潜在bug。例如@Data注解的类如果是某父类的子类,equals函数默认是不看父类的属性的。这和我们的期望不符,还需要添加@EqualsAndHashCode(callSuper = true)
@Datapublic abstract class TestFather {protected String lastName;}@Data//@EqualsAndHashCode(callSuper = true)public class TestSon extends TestFather {private String firstName;public static void main(String[] args) {TestSon a = new TestSon();TestSon b = new TestSon();a.setLastName("fan1");b.setLastName("fan");a.setFirstName("ff");b.setFirstName("ff");System.out.println(a.equals(b)); //结果为true}}
类似上面的例子在去掉@EqualsAndHashCode(callSuper = true)注解时,结果为true。
可以说使用的方便性也带来了维护的潜在难度,是否使用Lombok只能说见仁见智,合理使用避免bug的基础上能加快开发效率才是最好的。
2.CodeGlance
当一个Class文件特别大的时候,拖动这样的一个侧边栏,即可帮助我们快速定位到需要的位置。效果如图:


3.Rainbow Brackets
RainbowBrackets可以帮助你方便的区分大小括号的层级。效果如图:


这对于括号层级很多的代码,可以方便区分自己的代码在哪个括号范围内。
4.RestfulToolkit
有些小伙伴刚接手新的web项目,希望一次性知道项目controller的入口都在哪里,或者对外开放哪些接口,这个工具可以轻松实现,对Spring体系的接口都有效。

使用时,点开右边的侧边栏,可以查看到项目中所有的接口列表,点击接口会跳转到具体代码,同时可以对接口进行测试。

5.GsonFormat
将json转为Java类的插件,避免了一个个创建成员变量的麻烦。

假如我们有如下一个json需要生成Java的类
{"code": 200,"data": {"records": [{"brandId":521692,"brandName":"安佳"},{"brandId":513500,"brandName":"果実生活"}],"page": 1,"pageSize": 10,"pageCount": 2,"totalCount": 20},"message":"查询成功"}
我们可以新建一个空的类TestJsonFormat,如下操作




6.AlibabaCloudTookit

这个工具可以说是神器,在IDEA中有这样一款用于轻量级部署的工具,真的对阿里出品的东西是大写的服(btw在热搜榜单看到了AmazonCloudTookit,不知道两者是否有千丝万缕的关系)。
首先它的基础功能可以帮你替代终端工具例如XShell,只需在Host中添加登录所需的必要信息,即可快速登录服务器。

点击terminal即可登录服务器,点击upload即可快速向服务器指定目录上传本地文件,避免写scp的麻烦。


同样还有轻量级的CI功能,如果是个人应用可以省去了引入jenkins的麻烦,点击 deploy toHost
,填写jar包部署目录,写好脚本,之后便可一键部署,非常之方便。除了部署在服务器上指定路径下,也可以部署在Docker中。


当然这是阿里的插件,对阿里云上的产品有更快捷的功能,例如ECS,RDS部署等,有兴趣可以自己研究。
7.JclassLib
Jclasslib是反汇编的插件,类似于 javap-c
的功能,可以查看类的汇编码,对于了解常量池,以及同步块等需要查看汇编指令的知识时可以使用。

使用方法很简单,安装完成后, View->ShowByteCodeWithJclassLib
即可

8.MavenHelper
这个插件就不多说了,可以参考我的这篇文章如何解决让人头疼的Maven依赖冲突
9.Findbugs/SonarLint/AlibabaJavaCodingGuidelines
这类代码检查的插件也不少,功能都是差不多的,按需选择吧,我目前用的是SonarLint,对有问题的代码都会有响应的提示。

以上就是我经常使用,并且认为可以提高开发效率的插件,希望能给大家的开发带来帮助,提升开发体验。
祝大家编码愉快,生活愉快,下篇再见!
上篇内容:如何搭建项目脚手架




