插件名称 | 说明 |
---|---|
EasyCode | mybatis代码生成神器 |
.ignore | 必备 |
阿里巴巴代码规约 | Alibaba Java Coding Guidelines |
Gitee | 码云必备 |
CodeGlance | 右侧显示文档结构图 |
CheckStyle | 检验代码规范的插件 |
FindBugs | 找出bug |
Grep Console | 分级别显示控制台输出,漂亮 |
GsonFormat | 一键根据json文本生成java类 |
idea-markdown | 又名 Markdown Navigator |
JRebel for Intellij | 热部署的神器 |
LiveEdit | 前端页面开发HTML&CSS |
Log Support 2 | 快速生成log打印配置 |
Maven Helper | 解决冲突神器 |
GenerateAllSetter | 一键生成set,方法返回值文档 |
Rainbow Brackets | 彩虹括号,让代码不枯燥 |
RestfulToolkit | 能快速识别Restful接口,并且发送简单的请求 |
SonarLint | 代码分析 |
Tasks | TODO任务管理Tasks |
Translation | ctrl+shift+Y,最好用的翻译插件,功能很强大,界面很漂亮 |
YAML/Ansible support | springboot开发必备 |
P3c | 阿里巴巴出品的java代码规范插件 |
MyBatisCodeHelperPro | mybatis代码自动生成插件 |
Free Mybatis plugin | 定位接口在mapper文件中的位置 |
MyBatis Log Plugin | console中打出来一连串操作数据库的MyBatis sql |
stackoverflow | 程序员知乎,问题搜索插件 |
Key promoter X | IntelliJ IDEA的快捷键提示插件,提示你应该用什么快捷键 |
Alibaba Cloud Toolkit | 微服务自动化部署神器 |
MybatisX | Java 与 XML 调回跳转,Mapper 方法自动生成 XML |
1、社区版必备插件
2、Mybatis插件(推荐)
文档地址: https://gejun123456.github.io/MyBatisCodeHelper-Pro/
使用教程:https://www.cnblogs.com/NeverCtrl-C/p/10193390.html
插件破解:https://zhile.io/2019/04/23/mybatis-code-helper-pro-crack.html
功能描述:
- 通过方法名(不需要方法的返回值和参数 会自动推导出来)来生成sql 可以生成大部分单表操作的sql 只需要一个方法的名字即可 会自动补全好方法的参数和返回值 和springdatajpa的语句基本一致
- sql全自动提示,sql正确性检测,插件会识别mybatis的一系列标签 如 include trim set where,在这些标签之后的sql可以自动提示数据库的字段,检测sql的正确性,从此不用担心sql写错
- 直接从Intellij自带的数据库或者配置一个数据库生成crud代码 自动检测好 useGeneratedkey 自动配置好模块的文件夹 只用添加包名就可以生成代码了
- 从java类生成mybatis crud代码 建表语句 支持生成service,建表支持生成多字段的索引
- 数据库添加字段后可以继续生成,不会修改之前已经在接口或xml添加的自定义的方法 无需再去进行手动的添加
- mybatis接口和xml的互相跳转 支持一个mybatis接口对应多个xml
- mybatis接口中的方法名重构支持
- xml中的 param的自动提示 if test的自动提示 resultMap refid 等的自动提示
- resultMap中的property的自动提示
- xml中refid,resultMap等的跳转到定义
- 检测没有使用的xml 可一键删除
- 检测mybatis接口中方法是否有实现,没有则报红 可创建一个空的xml
- 检测resultmap的property是否有误
- param检测 检测#{ 中的内容是否有误
- ognl 支持 if test when test foreach bind中的自动补全,跳转和检测
- mybatis接口中一键添加param注解
- mybatis接口一键生成xml
- 支持spring 将mapper注入到spring中 intellij的spring注入不再报错 支持springboot
- 一键生成mybatis接口的testcase 无需启动spring,复杂sql可进行快速测试
- 一键生成两张表关联的join
- 一键从sql语句中 导出resultMap
3、Git相关插件
3.1、gitignore(推荐)
功能描述:
- 文件语法突出显示
- 在项目视图中为忽略的文件着色
- Gitignore模板按名称和内容过滤和选择规则生成器
- 用户自定义模板
- 按指定的Gitignore文件显示忽略的文件(右键单击.gitignore文件)
- 在当前选择的目录中创建文件
- 根据GitHub的模板集合生成Gitignore规则
- 从弹出菜单将选定的文件/目录添加到Gitignore规则
- 建议.gitignore为新项目创建文件
- 带有修复措施的条目检查(重复,覆盖,未使用,语法错误,相对条目)
- 注释和括号支持
- 导航到项目视图中的条目
- 重命名忽略文件中的条目
- 关闭打开的忽略文件操作
- 具有导入/导出功能的自定义用户模板
- 文件语法突出显示
- 在项目视图中为忽略的文件着色
- Gitignore模板按名称和内容过滤和选择规则生成器
- 用户自定义模板
- 按指定的Gitignore文件显示忽略的文件(右键单击.gitignore文件)
- 在当前选择的目录中创建文件
- 根据GitHub的模板集合生成Gitignore规则
- 从弹出菜单将选定的文件/目录添加到Gitignore规则
- 建议.gitignore为新项目创建文件
- 带有修复措施的条目检查(重复,覆盖,未使用,语法错误,相对条目)
- 注释和括号支持
- 导航到项目视图中的条目
- 重命名忽略文件中的条目
- 关闭打开的忽略文件操作
- 具有导入/导出功能的自定义用户模板
3.2、Git Integration 或 Git
IDEA内提供git版本管理的基础功能,使用git必需安装的。
3.3、GitToolBox(推荐)
在Idea的状态栏显示git状态,还提供了定时fecth等功能。
Features
-
Git status display
- shows number of ahead / behind commits for current branch as status bar widget
- ahead / behind, current branch, tags on HEAD as Project View decoration on modules
- can use remote tracking branch or any other ‘parent’ branch
-
Status bar widget
git status
- tooltip shows info for all repositories
- popup menu - status refresh
- popup menu - repository fetch git blame
- tooltip shows detailed blame for file/line
- popup - detailed blame balloon
- action to open detailed blame balloon
-
Auto fetch - runs git fetch at fixed intervals
-
Push tags on current branch - available in VCS / Git
-
Behind tracker - shows notification when behind count of current branch changes and is non-zero
-
Branch name completion in Commit dialog - provides branch name completion inside Commit dialog message
-
Blame inlined in active editor - show blame for line at caret in active editor
-
Git Extender integration - can be selected as update action executed from behind tracker popup
3.4、Git Flow Integration(推荐)
用于在Idea里面使用Gitflow工作流,使用这个插件需要先在自己的电脑上面安装好Gitflow。
3.5、GitLab Projects(推荐)
和GitLab Integration Plugin插件,使用Gitlab作为私有仓库时有用。
Features:
- GitLab Checkout support - add GitLab autocompleter to IDE Git checkout dialog
- GitLab Share dialog - allows quick import of new projects to GitLab, user can specify namespace and project visibility
- GitLab Merge Request dialog - user can quickly create new merge requests from current branch
- GitLab Merge Request List dialog - user can list and accept all open code reviews
3.6、Git Commint Template(推荐)
提供使用如下模板创建提交日志的功能:
<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>
4、Alibaba Java Coding Guidelines(推荐)
用于检查代码是否符合阿里巴巴的代码规范。需要在”Settings > Editor > Inspections > Ali-Check“中把检查打开。
5、Jrebel(强烈推荐)
热部署插件,可大幅提高开发效率。
激活地址:
http://jrebel.yanjiayu.cn:9001/{GUID}
https://jrebel.qekang.com/{GUID}
6、GenerateSerialVersionUID
用来在需要序列化的Java对象中生成GUID。
使用此插件前需要先在”Settings > Editor > Inspections > Java > Serialization issues"下把下图中的检查打开
7、Lombok(推荐)
在Idea里面支持Lombok。Lombok的介绍1,介绍2,详细使用说明
使用Lombok首先需要在项目中作如下设置
8、FindBugs(推荐)
检测代码中可能的bug及不规范的位置,写完代码后检测下 避免低级bug。
静态分析工具承诺无需开发人员费劲就能找出代码中已有的缺陷。当然,如果有多年的编写经验,就会知道这些承诺并不是一定能兑现。
插件提供地址:
https://plugins.jetbrains.com/plugin/3847-findbugs-idea
成功标志: 重启idea后如果插件加载成功左下角出现:
实际应用:
扫描完成后:
附录(网摘):
FindBugs 它用来查找Java代码中存在的bug。它使用静态分析方法标识出Java程序中上百种潜在的不同类型的错误。
FindBugs支持对包级别、项目级别、模块级别、单个文件级别,以及自定义范围的Bug分析。
FindBugs:特色是能够检查出空指针异常这种bug!
使用:右键单击(module、单个文件等)—>在快捷菜单中选择findbugs即可
8.1、FindBugs的Bug种类说明
8.1.1、Bad practice 坏的实践
一些不好的实践,下面列举几个:
- HE:类定义了equals(),却没有hashCode();或类定义了equals(),却使用Object.hashCode();或类定义了hashCode(),却没有equals();或类定义了hashCode(),却使用Object.equals();类继承了equals(),却使用Object.hashCode()。
- SQL:Statement 的execute方法调用了非常量的字符串;或Prepared Statement是由一个非常量的字符串产生。
- DE:方法终止或不处理异常,一般情况下,异常应该被处理或报告,或被方法抛出。
Malicious code vulnerability 可能受到的恶意攻击
如果代码公开,可能受到恶意攻击的代码,下面列举几个:
- FI:一个类的finalize()应该是protected,而不是public的。
- MS:属性是可变的数组;属性是可变的Hashtable;属性应该是package protected的。
类名小写问题:
8.1.2、Correctness 一般的正确性问题
可能导致错误的代码,下面列举几个:
- NP:空指针被引用;在方法的异常路径里,空指针被引用;方法没有检查参数是否null;null值产生并被引用;null值产生并在方法的异常路径被引用;传给方法一个声明为@NonNull的null参数;方法的返回值声明为@NonNull实际是null。
- Nm:类定义了hashcode()方法,但实际上并未覆盖父类Object的hashCode();类定义了tostring()方法,但实际上并未覆盖父类Object的toString();很明显的方法和构造器混淆;方法名容易混淆。
- SQL:方法尝试访问一个Prepared Statement的0索引;方法尝试访问一个ResultSet的0索引。
- UwF:所有的write都把属性置成null,这样所有的读取都是null,这样这个属性是否有必要存在;或属性从没有被write。
8.1.3、Dodgy 危险的
具有潜在危险的代码,可能运行期产生错误,下面列举几个:
- CI:类声明为final但声明了protected的属性。
- DLS:对一个本地变量赋值,但却没有读取该本地变量;本地变量赋值成null,却没有读取该本地变量。
- ICAST:整型数字相乘结果转化为长整型数字,应该将整型先转化为长整型数字再相乘。
- INT:没必要的整型数字比较,如X <= Integer.MAX_VALUE。
- NP:对readline()的直接引用,而没有判断是否null;对方法调用的直接引用,而方法可能返回null。
- REC:直接捕获Exception,而实际上可能是RuntimeException。
- ST:从实例方法里直接修改类变量,即static属性。
8.1.4、Performance 性能问题
可能导致性能不佳的代码,下面列举几个:
- DM:方法调用了低效的Boolean的构造器,而应该用Boolean.valueOf(…);用类似Integer.toString(1) 代替new Integer(1).toString();方法调用了低效的float的构造器,应该用静态的valueOf方法。
- SIC:如果一个内部类想在更广泛的地方被引用,它应该声明为static。
- SS:如果一个实例属性不被读取,考虑声明为static。
- UrF:如果一个属性从没有被read,考虑从类中去掉。
- UuF:如果一个属性从没有被使用,考虑从类中去掉。
8.1.5、Multithreaded correctness 多线程的正确性
多线程编程时可能导致错误的代码,下面列举几个:
- ESync:空的同步块,很难被正确使用。
- MWN:错误使用notify(),可能导致IllegalMonitorStateException异常;或错误的使用wait()。
- No:使用notify()而不是notifyAll(),只是唤醒一个线程而不是所有等待的线程。
- SC:构造器调用了Thread.start(),当该类被继承可能会导致错误。
8.1.6、Internationalization 国际化
当对字符串使用upper或lowercase方法,如果是国际的字符串,可能会不恰当的转换。
9、Maven Helper(推荐)
作用:
一键查看maven依赖,查看冲突的依赖,一键进行exclude依赖
对于大型项目 非常方便
插件提供地址:
https://plugins.jetbrains.com/plugin/7179-maven-helper
成功标志:
重启idea后如果插件加载成功 打开pom文件左下角出现:
实际应用:
切换Dependency Analyzer试图即可进行相应操作:
- Conflicts(查看冲突)
- All Dependencies as List(列表形式查看所有依赖)
- All Dependencies as Tree(树形式查看所有依赖)
选中右键就可以 Exclude 啦,想用1.2就把其他版本的Exclude掉,想用1.1.3就把其他版本的Exclude掉,很方便。
10、VisualVM Launcher
作用:
运行java程序的时候启动visualvm,方便查看jvm的情况 比如堆内存大小的分配
某个对象占用了多大的内存,jvm调优必备工具
插件提供地址:
https://plugins.jetbrains.com/plugin/7115-visualvm-launcher
成功标志:
重启idea后如果插件加载成功右上角出现:
实际应用:
首先需要一个客户端(这里已经为大家准备好):
链接:https://pan.baidu.com/s/1kIduEykNNrYyZd1CwJpntg
密码:bxib
将客户端解压
打开settings配置面板
配置excutable===》选择到客户端的bin目录的visualvm.exe文件
然后点击ok。apply应用一下
右键使用VM插件启动
然后会自动加载程序:
可查看jvm状态,然后就可以自行调试咯:
具体怎么搞,就看你们自己想怎么搞咯。
11、GenerateAllSetter(推荐)
作用:
一键调用一个对象的所有set方法并且赋予默认值 在对象字段多的时候非常方便
插件提供地址:
https://plugins.jetbrains.com/plugin/9360-generateallsetter
实际应用:
通过alt +enter生成一个类所有setter方法的默认值。
当两个对象转换器具有相同的字段时,为它们生成一个set方法;当returnType是List Set Map时生成默认值。
12、Translation(强烈推荐)
作用: 最好用的翻译插件,功能很强大,界面很漂亮
特征: 多个翻译引擎。多种语言的互译。多翻译引擎 (可切换)
- 谷歌翻译。
- 有道翻译。
- 百度翻译。
- 文字转语音。
- 自动选择字。
- 自动分词。
插件提供地址:
https://plugins.jetbrains.com/plugin/8579-translation
成功标志:
重启idea后如果插件加载成功右下角出现:
实际应用:
选择单词,右键:
翻译加朗读:
13、P3c
Alibaba Java Coding Guidelines
作用:
阿里巴巴出品的java代码规范插件,可以扫描整个项目找到不规范的地方并且大部分可以自动修复。虽说检测功能没有findbugs强大,但是可以自动修复,阿里巴巴Java编码指南插件支持。
插件提供地址:
https://plugins.jetbrains.com/plugin/10046-alibaba-java-coding-guidelines
成功标志:
点击上方tools,出现阿里编码制约
实际应用:
右键,点击编码制约规范,下方出现:
扫描代码后,不符合规约的代码会按Blocker/Critical/Major三个等级显示在下方面板中左边是扫描出的不符合规范的代码,依次点进去可以看到是代码的多少行出现了规约问题以及哪一个规约问题,右边则是规约的详细描述及实例代码。
也可快捷键:Alt+enter
还可以让其自动修复代码:
13、Free Mybatis plugin(推荐)
如果你是使用mybatis作为orm框架的,那么必定会遇到每次写接口都要搜mapper.xml,然后定位接口位置问题,这个插件可以让你直接定位接口在mapper文件中的位置,或者反向定位都可以,可以说是mybatis开发效能神器。你只需要点击小小的箭头就能搞定全部。
14、MyBatis Log Plugin
几乎是跟上面那个插件配套的,你肯定遇到过每次调试一个接口,在console中打出来一连串操作数据库的sql,但是这个sql并不能直接在数据库执行,还得手动拼参数,麻烦。这个插件就是帮你一次性把带参数信息的完整sql生成好,直接拿来用的哦。
15、stackoverflow
stackoverflow 不用说大家应该知道,程序员知乎,什么csdn、百度不出来的问题,基本都能在这得到答案(如果这里都没有那就真没有了),这个插件就是直接可以帮你。
16、Key promoter X(新手推荐)
Key promoter 是IntelliJ IDEA的快捷键提示插件,会统计你鼠标点击某个功能的次数,提示你应该用什么快捷键,帮助记忆快捷键,等熟悉了之后可以关闭掉这个插件。
17、Alibaba Cloud Toolkit(强烈推荐)
自动化部署神器
如果你正在开发项目使用的是springboot或者spring cloud微服务框架,那么必然会有一个头疼的问题,就是项目jar包部署,前期可能不会使用到Jenkins或者Docker这么庞大的东东,可能给你一个服务器,配一个jdk环境,往上一丢就完事了,但是时间长了,服务越来越多就会很烦了。
于是阿里巴巴团队推出这个插件,为了解决这类部署相关的问题,堪称自动化部署的神器,具体使用这里不做赘述,可以去官网学习一下。
官网地址:https://www.aliyun.com/product/cloudtoolkit
18、stackoverflow(强烈推荐)
程序员知乎,问题搜索插件
评委点评:这一看似平淡的右键stackoverflow,却把其中的闷骚体现的淋漓尽致:我就这么叼,我就不去浏览器里查,只有右键才和我的右手匹配。
19、GsonFormat(推荐)
Json字符串自动生成实体类
- 初始状态,一段json,
{
"id": 0,
"title_hello": "aaa",
"children": [
{
"id": 9,
"title_hello": "QA测试12",
"children": null
},
{
"id": 21,
"title_hello": "鱿鱼",
"children": null
}
]
}
- 新建一个类,Test,Alt+Insert调出GsonFormat菜单
- 文本框输入json串,点击Form,可以自动格式化
- 进入左下角Setting,使用说明我总结了如下
- 后续修正,基本是必要的,可以预览下,点击OK,关闭设置。再点击OK,预览字段名
可以看到title_hello显示为titleHello,因为前面勾上了使用序列化名。目前支持的类型修改,我看了下他的源码,应该只有boolean、int、double、long、String、Object、List这几种。点击OK,可以看到生成了2个文件。
详细流程:
使用idea快速生成数据库pojo
20、EasyCode(强烈推荐)
Easycode是直接对数据的表生成entity,controller,service,dao,mapper,无需任何编码,简单而强大。
参考文档:https://mp.weixin.qq.com/s/I4ZtFqeolBSG6nRRZ5CyHQ
21、MybatisX(强烈推荐)
MybatisX 是一款基于 IDEA 的快速开发插件,为效率而生,支持Java 与 XML 调回跳转和Mapper 方法自动生成 XML。
安装方法:打开 IDEA,进入 File -> Settings -> Plugins -> Browse Repositories,输入 mybatisx
搜索并安装。
参考:
https://blog.csdn.net/qq_25889465/article/details/94553410
https://blog.csdn.net/bntX2jSQfEHy7/article/details/78967219
https://blog.csdn.net/qq_38380025/article/details/105247548
https://cloud.tencent.com/developer/article/1490913