今天分享一些 idea中,能提升编码效率的12种插件,希望对大家有所帮助。

1. lombok

之前对lombok还有争议,到底该不该在项目中使用。

现在新版的idea已经内置了lombok插件,所以用它是一种趋势。

我之所以把lombok放在整篇文章的第一个介绍,是因为它真的可以帮我少写很多代码,特别是entity、DTO、VO、BO中的。

我们用User类举例,以前定义javabean需要写如下代码:

public class User {private Long id;private String name;private Integer age;private String address;public User() {}public User(Long id, String name, Integer age, String address) {this.id = id;this.name = name;this.age = age;this.address = address;}public Long getId() {return id;}public String getName() {return name;}public Integer getAge() {return age;}public String getAddress() {return address;}public void setId(Long id) {this.id = id;}public void setName(String name) {this.name = name;}public void setAge(Integer age) {this.age = age;}public void setAddress(String address) {this.address = address;}@Overridepublic boolean equals(Object o) {if (this == o) returntrue;if (o == null || getClass() != o.getClass()) returnfalse;User user = (User) o;return Objects.equals(id, user.id) &&Objects.equals(name, user.name) &&Objects.equals(age, user.age) &&Objects.equals(address, user.address);}@Overridepublic int hashCode() {return Objects.hash(id, name, age, address);}@Overridepublic String toString() {return"User{" +"id=" + id +", name='" + name + '\'' +", age=" + age +", address='" + address + '\'' +'}';}
}

该User类中包含了:成员变量、getter/setter方法、构造方法、equals、hashCode方法。

咋一看,代码还是挺多的。而且还有个问题,如果User类中的代码修改了,比如:age字段改成字符串类型,或者name字段名称修改了,是不是需要同步修改相关的成员变量、getter/setter方法、构造方法、equals、hashCode方法全都修改一遍?

好消息是用lombok可以解决这个问题。

如果是idea2020.3之前的版本,需要在idea中安装如下插件:但idea2020.3之后,idea已经内置了lombok的功能。

有了lombok插件,现在我们在idea只用这样写代码,就能实现上面的功能了:

@ToString
@EqualsAndHashCode
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
public class User {private Long id;private String name;private Integer age;private String address;
}

简直太轻松了,真的可以少写很多代码。

此外,我们还需要在项目的pom文件中,引入lombok的依赖包,不然项目会跑不起来。

2. Free Mybatis plugin

在国内mybatis已经成为了最主流的数据库框架了,该框架属于半自动化的ORM持久化框架,相对于hibernate这种全自动化的持久化框架更灵活,性能更高。

mybatis中,我们需要自己定义mapper和对应的xml文件完成绑定。

在这里我们以用户表为例,首先需要定义UserMapper接口:

public interface UserMapper {int insertUser(UserModel user);
}

然后需要UserMapper.xml配置文件:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.sue.jump.mappers.UserMapper"><sql id="selectUserVo">id, name, age, sex</sql><insert id="insertUser" parameterType="com.sue.jump.model.UserModel">INSERT INTO user<trim prefix="(" suffix=")" suffixOverrides=","><if test="id != null ">id,</if><if test="name != null  and name != ''">name,</if><if test="age != null ">age,</if><if test="sex != null ">sex,</if></trim><trim prefix="values (" suffix=")" suffixOverrides=","><if test="id != null ">#{id},</if><if test="name != null  and name != ''">#{name},</if><if test="age != null ">#{age},</if><if test="sex != null ">#{sex},</if></trim></insert>
</mapper>

UserMapper.xml文件中,mapper标签的namespace对应UserMapper接口名,而insert标签的id=insertUser,正好对应UserMapper接口中的insertUser方法。

那么,在项目中如何通过UserMapper类中的getUser方法,能够快速访问UserMapper.xml文件中的getUser方法?

答:这就需要使用Free Mybatis plugin插件了。

安装了该插件之后,在UserMapper接口的接口名和方法名的左边,会多了两个绿色的箭头,我们点击该箭头,就能跳转到UserMapper.xml文件对应的mapper标签或者insertUser语句上。此外,在UserMapper.xml文件的insertUser语句的左边,也会多出一个绿色的箭头,我们点击该箭头,也能跳转到UserMapper接口的insertUser方法上。有了这个插件,我们就能在mapper和xml之间自由切换,自由玩耍了,再也不用像以前那样搜索来搜索去。

3.Translation

有些小伙伴可能英语不太好。

我们在给变量或者方法取名时,要想半天。特别是在阅读JDK英文文档时,遇到了一些生僻字,简直头大。

有个好消息是使用:Translation插件,能够让我们在文档中自由飞翔。安装完Translation插件之后,在other settings中多了一个Translation菜单。

点击该菜单:在右边的窗口中,可以选择翻译软件。

选中需要翻译的英文文档:在右键弹窗的窗口中,选择Translation选项,会弹如下窗口:一段英文段落,一下子翻译成了中文,简直太爽了。

4.Alibaba Java Coding Guidelines

如果你是从事Java开发工作的小伙伴,肯定看过阿里巴巴的《Java开发手册》。

该手册总结了我们在日常开发过程中,可能会遇到的问题。从编程规约、异常日志、单位测试、安全规约、Mysql数据库和工程结构,这6大方面,规范了开发的流程,确保我们能写出高效、优雅的代码。

但这些规范性的东西,仅仅靠人的自觉性,很难达到预期的效果。

为了解决这个问题,阿里巴巴推出了Alibaba Java Coding Guidelines插件,能够通过该插件,直接查出不合规范的代码。

安装了该插件之后,按下快捷键:Ctrl+Alt+Shift+J,可以可对整个项目或单个文件进行编码规约扫描。

扫描后会将不规范的代码按从高到低。

目前有三个等级显示在下方:

  • Blocker 崩溃

  • Critical 严重

  • Major 重要

点击左边其中一个不规范的代码行,右边窗口会立刻显示不规范的详细代码,便于我们快速定位问题。

nice。

5. GenerateAllSetter

很多时候,我们需要给某个对象赋值,如果参数比较多的话,需要手写大量的setter或者getter代码。

有没有办法一键搞定呢?

答:有,使用GenerateAllSetter插件。

安装完插件之后,在创建的对象上,按快捷键下:alt + enter

在弹出的窗口中选择:Generate all setter with default value。

就会自动生成如下代码:简直太方便了。

6. SequenceDiagram

我们平时在阅读源码时,为了梳理清楚内部逻辑,经常需要画一些时序图

如果我们直接画,会浪费很多时间,而且画的图不一定正确。

这时可以使用:SequenceDiagram插件。

选择具体某个方法,右键选择:sequence diagram选项:之后,会出现时序图:

从此以后,能够成为画图高手了,完美。

7. CheckStyle-IDEA

在代码格式方面,有许多地方,需要我们注意,比如:无用导入、没写注释、语法错误、方法太长等等。

有没有办法,可以在idea中,一次性检测出上面的这些问题呢?

答:使用CheckStyle-IDEA插件。

CheckStyle-IDEA是一个检测代码格式是否满足规范的工具,其中用得比较多的是Google规范和Sun规范。

安装完插件后,在idea的下方会出现:CheckStyle选项:点击左边的绿色按钮,可以扫描代码。在中间位置,会显示不符合代码规范的原因。

双击代码,即可直接跳转到具体代码:

8.JRebel and XRebel

在idea中开发Java项目,有个很不爽的地方是:每次修改一个类或者接口,都需要重启服务,否则不会运行最新地方。

而每次重启,都需要花大量的时间。

有没有办法,Java代码修改后不用重启系统,立即生效呢?

答:使用JRebel and XRebel插件。

如图:

安装完成之后,这里会有两个绿色的按钮,并且在右边多了一个选项Select Rebel Agents:

其中一个绿色的按钮,表示热部署启动项目,另外一个表示用debug默认热部署启动项目。

Select Rebel Agents选项中包含三个值:

  • JRebel:修改完代码,不重启服务,期望代码直接生效。

  • XRebel:请求过程中,各个部分代码性能监控。例如:方法执行时间,出现的异常,SQL执行时间,输出的Log,MQ执行时间等。

  • JRebel+XRebel:修改完代码,不重启服务,并且监控代码。

9. Codota

说实话,idea现有的代码提示功能,已经很强大了。

但如果你使用过Codota插件,它会让你写代码的速度更上一层楼。

安装完插件之后,我们在写代码时,它会给你一些提示:

这些提示是基于ai统计出来的,非常有参考价值。

10. GsonFormat

很多时候,我需要把json中的参数,转换成实体对象中的参数。或者把实体对象中的参数,转换成json中的参数。

以前我们都是手动一个变量,一个变量的拷贝的。

但现在有个好消息是,idea的GsonFormat插件可以帮我们完成这件事。

安装完插件之后,先创建一个空类:按下快捷键:alt + s,会弹出下面这个窗口:然后在该窗口中,录入json数据。

点击确定按钮,就会自动生成这些代码:简直帅呆了。

11. Rainbow Brackets

我们平时写代码的时候,括号是让我们非常头疼的地方,特别是代码逻辑很多,层层嵌套的情况。

一眼很难看出,代码是从哪个括号开始,到哪个反括号结束的。

有没有办法解决这个问题呢?

答:使用Rainbow Brackets插件。

安装完插件之后,括号和反括号,在代码中会自动按照不同颜色做区分:

非常显目,非常直观。

12. CodeGlance

有些时候,我们阅读的代码很多,比如某个类中包含的方法和成员变量很多。

从上往下,一点点往下翻,会浪费很多时间。那么有没有办法,能够快速翻到想看的代码呢?

答:有,可以使用CodeGlance插件。

安装完插件之后,在代码右侧,会出现下面这个窗口:

它是代码的缩略图,通过它我们能够非常快速的切换代码块。

神级 idea 插件,让你代码飞起来~相关推荐

  1. 堪比Topogun的神级拓扑插件RetopoFlow

    推荐:将  NSDT场景编辑器  加入你的3D开发工具链 以往我们需要拓扑时一般都是借助到Topogun这个软件,今天来介绍下Blender中一个神级拓扑插件RetopoFlow,如果使用Blende ...

  2. IDEA 15款神级良心插件强烈推荐收藏,提高一倍工作效率!

    点击上方 好好学java ,选择 星标 公众号重磅资讯.干货,第一时间送达 今日推荐:分享一套基于SpringBoot和Vue的企业级中后台开源项目,这个项目有点哇塞!个人原创100W+访问量博客:点 ...

  3. IDEA 15款神级良心插件强烈推荐收藏

    点击上方"朱小厮的博客",选择"设为星标" 后台回复"书",获取 后台回复"k8s",可领取k8s资料 满满的都是干货 ...

  4. 神级程序猿用HTML5代码画出恐龙求欢图,想象力太丰富!

    点击查看恐龙的爱恋特效 纯HTML5/CSS3画出唯美恐龙之爱,无javascript! 最近都比较偏向于找纯CSS3动画,或者游戏特效,前段时间写了太多的javascript的特效,案例,包括封装插 ...

  5. 神级程序员288行代码用C语言打造炫酷的推箱子小游戏!

    根据J2ME版推箱子游戏改编,现改版为VC++版,功能上一模一样,不过现在可以在Windows上运行了,而非限制于手机.游戏界面看上去还不错. 源码结构截图: 代码截图: 原来测试效果: 这个推箱子是 ...

  6. 程序员python代码打招呼方式_某编程少年说他是Python大神,神级程序员不用一行代码教他做人!...

    听君一席话,胜读十年书. 1.扎实的python基础 个人的技术基础知识是否扎实,决定了个人是否能够做的工作层次. 比如某些Python半吊子,只能够纸上谈兵,和Python小白谈谈人生理想,而只要涉 ...

  7. java300行程序代码_神级程序员JavaScript300行代码搞定汉字转拼音

    一.汉字转拼音的现状 首先应该说,汉字转拼音是个强需求,比如联系人按拼音字母排序/筛选:比如目的地(典型如机票购买) 按拼音首字母分类等等.但是这个需求的解决方案,但好像没听过什么巧妙的实现(特别是浏 ...

  8. 神级浏览器插件iTab新标签页

    各位好,如果你还在用十年前的杂乱的导航页,那么你一定要看看这篇文章!这篇文章将介绍一个改变你的浏览器主页的小插件,还给你一个干净清爽.潮流美观的浏览器主页.这款插件就是iTab,iTab是一款可以用于 ...

  9. 8G+256G固态笔记本,结合这款IDEA插件,写代码飞起!

    为回馈广大读者粉丝们的大力支持,本号主特地选了这款巧翼笔记本作为抽奖礼品送给大家.这礼物呢,可手捧追剧玩游戏,也可写字撰文搞创作.无论是自己玩,还是当礼物送人,都是理想佳品. 祝所有人新的一年工作顺利 ...

最新文章

  1. centos 重装 php5,centos6.6学习笔记:安装PHP5.5
  2. 【自然框架】分享 n级联动下拉列表框
  3. quit推不出mysql_cmd下使用mysql插入中文出现无法退出语句的情况!终极解决办法! 安装mysql详细教程。...
  4. 洛谷P2995奇数偶数
  5. Java NIO系列教程(十) Java NIO DatagramChannel
  6. python中英文字符和中文字符存储长度不同_Django如何正确截取中英混合字符串及表单中限制中文字符中长度...
  7. 同方知网软件_国产精品软件天若OCR:支持图像识别/自动翻译/公式识别等
  8. mysql存储过程实va_mysql-存储过程(二)-逻辑判断语句
  9. 非常有用的101道算法部分常见面试题
  10. oracle sequences优化_Oracle优化(恒生内部常规分享)
  11. 先批标准化还是先激活
  12. Linux下挂载iscsi存储及多路径功能配置
  13. matlab编写k均值算法,K均值聚类算法的MATLAB实现 - 全文
  14. win10去除桌面快捷方式图标(亲测可用)
  15. iOS 中的常用设计模式总结
  16. 菜鸟学习OGRE和天龙八部之一:OGRE+MFC+OIS
  17. 华为云文档数据库服务更安全
  18. 无意间翻到五年前的工作笔记
  19. 动画《魁拔妖侠传》反思
  20. C++11实现多线程电梯运行

热门文章

  1. MathType使用技巧——保存常用公式
  2. 同学少年多不贱 [咱们的大学生活]
  3. 2021年副高考试成绩查询兵团,2021年新疆兵团公务员笔试成绩查询入口
  4. Framework事件机制—Android事件处理的三种方法
  5. ubuntu查看服务器信息,查看Ubuntu服务器的版本信息
  6. eclipse无法生成class文件,servlet修改后未更新,总是重启服务器
  7. Unity WebGL手机浏览器支持及游戏交互问题
  8. linux软RAId配置与管理总结,Linux下使用mdadm创建和管理软raid(转)
  9. createfile调用失败_CreateFile 函数说明
  10. 使用 C# 开源的微信/QQ/TIM 防撤回神器