一、前言

IDEA 全称 IntelliJ IDEA,是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具。

不是我说的喔,百度百科说的... IDEA 如此好用,插件库也是很强大的,俗话说:“工欲善其事必先利其器”,不安排几个插件都不好意思说你开发工具用的是 IDEA ,接下来将介绍插件的安装方式。

二、IDEA 插件安装

在使用插件之前,你需要了解 IDEA 的插件安装方式,安装 IDEA 插件是非常方便的,你只要知道插件的名字就可以直接安装, IDEA 插件安装有两种方式:

1、在线安装

在 IDEA 中选择:File —> Settings —> Plugins

你可以直接在开发工具输入插件的名字搜索安装,例如安装Lombok插件:

2、离线安装

进入 IDEA 下载插件官网:https://plugins.jetbrains.com,输入插件的名字搜索,下载插件对应 IDEA 版本的插件包

在 IDEA 中选择:File —> Settings —> Plugins —> Install plugin from disk —> 选择下载好的插件包进行安装

TIP: 安装完成之后,重启 IDEA 就行了。本文使用的 IDEA 版本为2020.1,IDEA 使用最新版本的话,可能对应的第三方插件的版本没跟上导致不能使用。熟悉完插件安装方式之后,接下来将介绍近二十余款常用的 IDEA 插件

三、插件

1、Lombok

Lombok 项目是一个 Java 库,它会自动插入编辑器和构建工具中,Lombok提供了一组有用的注释,用来消除Java类中的大量样板代码。仅五个字符(@Data)就可以替换数百行代码从而产生干净,简洁且易于维护的Java类,使用 Lombok 时候需要安装 Lombok 插件和对应依赖

使用 Lombok 时候需要添加依赖:

<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
<scope>provided</scope>
</dependency>

更多Lombok用法查看:https://projectlombok.org

2、RestfulTool

一套 Restful 服务开发辅助工具集。

  • 提供了一个 Services tree 的显示窗口

  • 点击 URL 直接跳转到对应的方法定义

  • 一个简单的 http 请求工具

  • 支持 Spring 体系 (Spring MVC / Spring Boot)

  • 支持 JAX-RS

  • 支持 Navigate->RequestService 搜索 Mapping (Ctrl + Alt + /)

TIP: RestfulToolkit 插件与 RestfulTool 插件功能类似,只是 RestfulToolkit 在 IDEA 2020.1 以后作者未更新,不能使用了,但是在 IDEA 2019.3.5可以使用,在 IDEA 2020.1 版本以后可以装 RestfulTool 插件,且该插件只支持 IDEA 2020.1+ 。

3、Free Mybatis plugin

IDEA 默认不能直接从代码跳转到映射器,该插件是一款增强 IDEA 对 mybatis 支持的插件,主要功能如下:

  • 生成mapper xml文件

  • 快速从代码跳转到mapper及从mapper返回代码

  • mybatis自动补全及语法错误提示

  • 集成mybatis generator gui界面

4、Mybatis Log Plugin

该插为收费版,试用版为30天,该插件主要功能:

  • 该插件可以还原MyBatis输出的日志为完整的SQL语句

  • 把SQL日志里面的?替换为真正的参数值

  • 选中要还原的MyBatis日志,右键点击菜单Restore Sql,还原SQL语句

  • Java接口方法与Mapper xml文件互相跳转

安装完插件之后,重启可以点击试用:

演示:

可以看到 MyBatis 打印的日志SQL被自动的格式化成可执行的SQL了,如果业务中打印的SQL很多影响你查看,你也可以选择手动格式化指定SQL

5、Grep Console

在启动应用时或调试时,IDEA 控制台输出一大堆日志,想要快速找到自己需要类型的日志是很麻烦的,此时使用此插件可以快速定位到自己想要的类型日志,比如 TRACE 、 DEBUG 等,也可以单独打开标签页显示自己需要的日志,日志分类也可以配置自己喜欢的颜色。

6、Maven Helper

查看和管理maven依赖的插件,可以展示pom.xml文件中的依赖以列表或树的形式,该插件可以很直观的帮你分析和排除冲突依赖

7、GenerateAllSetter

一款效率插件,它主要提供以下功能:

  • 通过alt+enter对变量类生成对类的所有setter方法的调用

  • 当两个对象具有相同的字段时生成一个转换器

  • 当返回类型为List Set Map时生成默认值

  • 在所有getter方法上生成对assertThat的调用

8、Rainbow Brackets

如果代码没有被格式化的话,阅读起来很痛苦,就算被格式化了,几千行代码,各种if嵌套,阅读起来连个结尾括号都找不到(如果你说你会折叠,当我没说),也是很痛苦的,此时这个插件就能忙上很大的忙,能帮你快速定位到代码块中的上下文,突出显示,彩虹括号。

使用:

1、Ctrl+右键单击,高亮显示所选代码块

2、Alt+右键单击,其他全部为灰色,突出显示选中代码块

更多使用可以参考 github 地址:https://github.com/izhangzhihao/intellij-rainbow-brackets

9、Json Helper

该插件提供了一个易于使用的工具窗口,可以直接在您的IDE中执行JSON字符串操作,不用再打开网站格式化JSON啦,该插件提供了如下功能:

  • 美化您的丑陋json

  • 丑化你漂亮的json

  • 转义你的json

  • 解除转义json

  • 支持JMES json路径搜索。请参阅此处的示例:https://jmespath.org/

  • 对变量声明解析的实验支持。例如public final String json = "{\"key\":\"value\"}";变成原始的美化json

  • Json检查允许嵌套json。也适用于JSON临时文件

10、CodeGlance

CodeGlance 插件在编辑器窗格中嵌入一个类似于在Sublime中的代码缩略图。使用自定义的颜色突出显示语法,可同时处理浅色和深色主题,可以快速定位代码,使用起来比拖动滚动条方便多了。

11、SequenceDiagram

SequenceDiagram 插件可以根据代码调用链路自动生成时序图,这对梳理工作中的业务代码有很大的帮助,堪称神器,暴赞!

TIP:双击顶部的类名可以跳转到对应类的源码中,双击调用的方法名可以直接跳入指定方法的源码中

12、Alibaba Java Coding Guidelines 和 SonarLint

一、Alibaba Java Coding Guidelines

阿里巴巴代码规范约束插件,对代码规范等很有帮助,可以养成良好的代码规范,编程风格

扫描整个项目:

扫描代码后,将不符合规约的代码按 Blocker(崩溃)、Critical(严重)/Major(重要) 三个等级显示在下方,双击可以定位至代码处,右侧窗口还有针对代码的批量修复功能。

如果觉得扫描整个项目太浪费时间且影响性可以能扫描单个文件:

TIP:阿里编码规约扫描,默认是开启实时监测的,此功能可能会引起 IDEA 卡顿,可以点击 关闭实时检测功能 将其关闭,在编码完成后再主动扫描文件。

二、SonarLint

SonarLint 是一个免费的IDE扩展,允许您在编写代码时修复错误和漏洞!与拼写检查器一样,SonarLint会动态地突出显示代码问题,并提供明确的修复指导,以便在代码提交之前修复这些问题。在流行的IDEs(Eclipse, IntelliJ, Visual Studio, VS Code)和流行的编程语言,SonarLint 帮助所有开发人员编写更好、更安全的代码!

区别:

这两款插件的侧重点不同:

  • AlibabaJavaCodingGuidelines 插件比较关心的是代码规范,编码风格上的,例如,命名规范,注释,代码行数等

  • SonarLint 插件比较关心代码正确性,存在的问题,风险,漏洞等,例如,重复代码,空指针,安全漏洞等

使用 AlibabaJavaCodingGuidelines 插件来规范代码,使用 SonarLint 来提前发现代码问题,配合起来提高工程整体的代码质量,并且能够在编码阶段规避风险,提高程序的健壮性。

13、Translation

一款翻译插件,再也不用切换窗口到浏览器或翻译软件中搜索了,也可以通过 TranslateandReplace 汉字翻译为驼峰命名的英语,在定义方法名或属性变量时很方便。

14、Activate-power-mode-x 和 Power mode II

这两款插件提供了写代码时的动态效果。

一、Activate-power-mode-x

Activate-power-mode-x 是 Activate-power-mode 插件的修复版本,在此上面迭代更新了几个可配置的选项。

二、Power mode II

区别:

  • activate-power-mode-x 颗粒特效默认是白色的,可以调整其他颜色,但是颗粒特效颜色单一,编辑框也跟着抖动,有点晃眼哇

  • Power mode II 各种颜色的颗粒,默认编辑框不跟着抖动,视觉舒服点(由于 IDEA 2020.1 版本为2020/4/9更新的,Power mode II 最后一次更新为2020/2/17,所以到配置选项框无法显示配置选项,可能由于插件版本没跟上的问题)

15、Background Image Plus

该插件将编辑器背景设置为指定文件夹中的随机图片

16、Nyan progress bar

该插件将你 IDEA 中的所有的进度条都变成小猫动画,小猫可以跟着进度条变化而移动喔。

IDEA 插件仓库中还有很多优秀的插件,没有最好的只有更适合的,其他插件慢慢探索吧。

● 用过好几个注册中心,你竟然不知道他们的区别?

● Mybatis Generator逆向工程的使用

● XStream学习手册

● 别在 Java 代码里乱打日志了,这才是正确的打日志姿势!

● 高可用Redis服务架构分析与搭建

恕我直言,你可能真没用过这些 IDEA 插件!的更多相关文章

  1. 不再为Apache进程淤积、耗尽内存而困扰((转))

    本篇文章是为使用Apache+MySQL,并为Apache耗尽内存而困扰的系统管理员而写.如果您没有耐心读完本文,请参考以下步骤: 修改/etc/my.cnf,加上这样一行: log-slow-que ...

  2. ios 多线程必读内容 :锁

    大学时的生产者消费者问题还记得吗?ios中的锁,请阅读以下官方文档,虽然是英文的,但是说的非常准确: Threading Programming Guide 中的 Synchronization ht ...

  3. 【01:转自知乎:关于 openSUSE 】

    我是 openSUSE 中文维基唯一的非官方维护者,openSUSE 简体中文翻译团队召集人,linuxsir SuSE 版块的版主,openSUSE 官方论坛 http://forums.opens ...

  4. 我的Unity学习路线

    前言 上班的时间内都很忙在做项目,休息时间里闲下来了,却觉得没什么事做不自在.难道真是苦逼的命不会享受? 想了一下这一段时间以来的过程:先是重新看了一遍Unity的基础部分,然后买了<3D数学基 ...

  5. Android TouchEvent事件传递机制

    本文转载自:http://blog.csdn.net/morgan_xww/article/details/9372285 跟touch事件相关的3个方法: public boolean dispat ...

  6. 【转】Android TouchEvent事件传递机制

    Android TouchEvent事件传递机制   事件机制参考地址: http://www.cnblogs.com/sunzn/archive/2013/05/10/3064129.html ht ...

  7. celery最佳实践

    作为一个Celery使用重度用户.看到Celery Best Practices这篇文章.不由得菊花一紧. 干脆翻译出来,同一时候也会添加我们项目中celery的实战经验. 至于Celery为何物,看 ...

  8. Python 解LeetCode:671. Second Minimum Node In a Binary Tree

    题目在这里,要求一个二叉树的倒数第二个小的值.二叉树的特点是父节点的值会小于子节点的值,父节点要么没有子节点,要不左右孩子节点都有. 分析一下,根据定义,跟节点的值肯定是二叉树中最小的值,剩下的只需要 ...

  9. 60、jQuery其余操作

    上篇主要介绍了jQuery,和一些基本用法,这篇主要讲解动画.常用事件.还有一些jQuery的补充内容. 本篇导航: 动画 常用事件 插件 jQuery API 中文文档 一.动画 1.基本 show ...

随机推荐

  1. 洛谷P1063.能量项链

    题目描述 在Mars星球上,每个Mars人都随身佩带着一串能量项链.在项链上有N颗能量珠.能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数.并且,对于相邻的两颗珠子,前一颗珠子的尾标记一定 ...

  2. SQL数据单条转多条(Lateral View)

    Lateral View和split,explode等UDTF一起使用,它能够将一行数据拆成多行数据,并在此基础上对拆分后的数据进行聚合. 单个Lateral View语句语法定义如下:lateral ...

  3. 【日常摘要】- RabbitMq实现延时队列

    简介 什么是延时队列? 一种带有延迟功能的消息队列 过程: 使用场景 比如存在某个业务场景 发起一个订单,但是处于未支付的状态?如何及时的关闭订单并退还库存? 如何定期检查处于退款订单是否已经成功退款 ...

  4. 题解 洛谷 P5324 【[BJOI2019]删数】

    先考虑对于一个序列,能使其可以删空的的修改次数. 首先可以发现,序列的排列顺序是没有影响的,所以可以将所有数放到桶里来处理. 尝试对一个没有经过修改的可以删空的序列来进行删数,一开始删去所有的\(n\ ...

  5. Java代码片段

    type 为Java中的任意数据类型,包括基本类型和组合类型,arrayName为数组名,必须是一个合法的标识符,[ ] 指明该变量是一个数组类型变量.例如: 这两种形式没有区别,使用效果完全一样,读 ...

  6. centos 安装 nginx 及配置 的坑

    centos 安装 nginx 教程 1.创建/etc/yum.repos.d/nginx. centos 安装 nginx 教程 1.创建/etc/yum.repos.d/nginx.repo to ...

  7. 学Python入门应该先学什么?看完本文你就知道了

    学Python应先从Python开发基础部分入手:1.如学习Python语言介绍2.环境安装3.Python基本语法4.基本数据类型5.二进制运算6.来流程控制.7.字符编码.文件处理8.数据类型9. ...

  8. Go语言系列之手把手教你撸一个ORM(一)

    项目地址:https://github.com/yoyofxteam/yoyodata 欢迎星星,感谢 前言:最近在学习Go语言,就出于学习目的手撸个小架子,欢迎提出宝贵意见,项目使用Mysql数据库 ...

  9. 国外的非常好的开发提问回答的网站https://stackoverflow.com/questions

    https://stackoverflow.com/questions 可以进行搜索,在页面顶部,有搜索输入框

  10. (int) 与 Convert.ToInt32()

    ((xEnd - xStart) / newSize) + 1 = 172.99999999 int Width = (int)((xEnd - xStart) / newSize) + 1;  = ...