自动编译开关
忽略大小写开关
智能导包开关
悬浮提示开关
取消单行显示tabs的操作
项目文件编码
设置行号显示
在Eclipse中自动编译开关是开着的,如下所示
那么,在IDEA中,务必要手动将其打开,非常重要!如下所示
IDEA默认是匹配大小写,此开关如果未关。你输入字符一定要符合大小写。比如你敲string是不会出现代码提示或智能补充。
但是,如果你开了这个开关,你无论输入String或者string都会出现代码提示或者智能补充!
如下图所示,将
自动导入不明确的结构
智能优化包
这两个选项勾上。那么有什么效果呢?
你在代码中,只要敲list,就会出现提示,自动导入java.util.List
这个类。而这个特性,在eclipse中,是无法做到的。如下图所示
这个容易理解,打开这个开关后。只要把鼠标放在相应的类上,就会出现提示,如下图所示
如下图所示,把该按钮去了
那么去掉后有什么效果呢?
打开多个文件的时候,会换行显示,非常直观。大大提升效率!
如下图所示进行设置
Transparent native-to-ascii conversion的意思是:自动转换ASCII编码。
他的工作原理是:在文件中输入文字时他会自动的转换为Unicode编码,然后在idea中发开文件时他会自动转回文字来显示。
这样做是为了防止文件乱码。
这样你的properties文件,一般都不会出现中文乱码!
设置行号显示
这个的重要性就不用多说了,勾上后代码中,会显示行数!
一、官方工具
IntelliJ IDEA 默认安装并提供了非常多的工具,比如 Git Integration、Maven Integration、Markdown support、SSH Remote Run 等。其中有很多好用,但是不为人知的工具。
在日常开发过程中,我们或多或少都涉及到 API 接口的测试。例如,有的小伙伴使用 Chrome 的 Postman 插件,或者使用火狐的 restclient 等工具。事实上,这些工具是测试 API 接口非常有效的方式之一,笔者之前也一直使用 Postman 完成 API 接口的测试工作。今天,笔者推荐另外一个非常好用的小工具,能够帮助读者快速测试 API 接口。这个工具就是 IDEA 的 Editor REST Client。IDEA 的 Editor REST Client 在 IntelliJ IDEA 2017.3 版本就开始支持,在 2018.1 版本添加了很多的特性。事实上,它是 IntelliJ IDEA 的 HTTP Client 插件。详细使用文档,参考:http://blog.720ui.com/2018/restclient_use/
如果需要研究源码,内置 UML Support 插件可以很好地查看类继承关系。详细使用文档,参考:https://www.jetbrains.com/help/idea/class-diagram.html
未完待续。。。
阿里代码规约检测
快捷键提示工具:Key promoter X
代码注解插件: Lombok
代码生成工具:CodeMaker
单元测试测试生成工具:JUnitGenerator
Mybatis 工具:Free Mybatis plugin
Maven辅助神器:Maven Helper
JSON转领域对象工具:GsonFormat
领域对象转JSON工具:POJO to JSON
时序图生成工具:SequenceDiagram
字符串工具:String Manipulation
代码作色工具:Rainbow Brackets
RESTful 服务开发辅助工具集: RestfulToolkit
日志工具:Grep Console
生成对象set方法:GenerateAllSetter
Redis可视化:Iedis
中英文翻译工具:Translation
《阿里巴巴 Java 开发手册》是阿里巴巴集团技术团队的集体智慧结晶和经验总结, 经历了多次大规模一线实战的检验及不断完善, 系统化地整理成册。当然,规范只能提供参考,我们还需要工具来帮忙我们实现了实时检测。目前,Alibaba Java Code Guidelines 插件实现了开发手册中的的 53 条规则,大部分基于 PMD 实现,其中有 4 条规则基于 IDEA 实现,并且基于 IDEA Inspection 实现了实时检测功能。部分规则实现了 Quick Fix 功能。目前,插件检测有两种模式:实时检测、手动触发。详细使用文档,参考:https://github.com/alibaba/p3c/blob/master/idea-plugin/README_cn.md
阿里巴巴 Java 开发手册(详尽版): https://github.com/alibaba/p3c/blob/master/阿里巴巴Java开发手册(详尽版).pdf
GitHub : https://github.com/alibaba/p3c
IDEA 插件地址:https://plugins.jetbrains.com/plugin/10046-alibaba-java-coding-guidelines
此外,类似的插件还有 FindBugs 和 CheckStyle。
Key Promoter X 是一个快捷键提示插件,如果鼠标操作是能够用快捷键替代,Key Promoter X 会提示可以用什么快捷键替代。详细使用文档,参考:https://plugins.jetbrains.com/plugin/9792-key-promoter-x
lombok 的使用,参考 :https://projectlombok.org/。我们需要在代码中引入二方库,然后安装 lombok 插件即可。
开发过程中,经常手工编写重复代码。现在,可以通过 CodeMaker 来定义 Velocity 模版来支持自定义代码模板来生成代码。目前,CodeMaker 自带两个模板。Model:根据当前类生成一个与其拥有类似属性的类,用于自动生成持久类对应的领域类。Converter:该模板需要两个类作为输入的上下文,用于自动生成领域类与持久类的转化类。详细使用文档,参考:https://github.com/x-hansong/CodeMaker
单元测试是必不可少的!我们可以使用 JUnitGenerator 插件来自动创建了单元测试。我们可以使用提供的 velocity 模板定制单元测试输出代码。如果在已经存在单元测试的地方创建了单元测试,则会提示用户进行覆盖或合并操作。合并操作允许用户有选择地创建目标文件内容。详细使用文档,参考:https://plugins.jetbrains.com/plugin/3064-junitgenerator-v2-0
现在,MyBatis 框架已占领半壁江山。因此,围绕着 MyBatis 的插件和工具越来越多。Free Mybatis plugin 非常方便进行 Mapper 接口和 XML 文件之间跳转。详细使用文档,参考:
https://plugins.jetbrains.com/plugin/8321-free-mybatis-plugin。此外,收费版的还有 Mybatis plugin。
对于 Mybatis 的工具还有很多,比如 mybatis-log-plugin、codehelper.generator。此外,非 IDEA的工具有: Mybatis 分页插件 Mybatis-PageHelper、Mybatis 代码生成工具 mybatis-generator 等。地址:http://www.mybatis.org/generator/
如果 Maven 引入的 jar 包有冲突,可以使用 Maven Helper 插件来帮助分析。详细使用文档,参考:https://plugins.jetbrains.com/plugin/7179-maven-helper
在开发过程中,我们可能会遇到 json 格式的字符串转换成实体类参数的场景,这个插件可以根据 JSONObject 格式的字符串,自动生成实体类参数。详细使用文档,参考:https://github.com/zzz40500/GsonFormat
那么,如何使用呢?我们可以使用 GsonFommat 的快捷键,默认 option + s (mac), alt + s (win) 通过以下方式修改快捷键。或者点击工具栏的 Generate 来唤起生成工具。
为了测试需要,我们需要将简单 Java 领域对象转成 JSON 字符串方便用 postman 或者 curl 模拟数据。详细使用文档,参考:https://plugins.jetbrains.com/plugin/9686-pojo-to-json
有的时候,我们需要梳理业务逻辑或者阅读源码。从中,我们需要了解整个调用链路,反向生成 UML 的时序图是强需求。其中,SequenceDiagram 插件是一个非常棒的插件。详细使用文档,参考:https://plugins.jetbrains.com/plugin/8286-sequencediagram
String Manipulation 插件提供了非常丰富字符串工具,例如命名替换( (camelCase, kebab-lowercase, KEBAB-UPPERCASE, snakecase, SCREAMINGSNAKE_CASE, dot.case, words lowercase, Words Capitalized, PascalCase)等。详细使用文档,参考:https://plugins.jetbrains.com/plugin/2162-string-manipulation
Rainbow Brackets 插件可以实现配对括号相同颜色,并且实现选中区域代码高亮的功能。详细使用文档,参考:https://plugins.jetbrains.com/plugin/10080-rainbow-brackets
事实上,代码作色之后,可以非常方便我们阅读。类似的工具还有:Grep Console 来自定义设置控制台输出颜色等。
开发中,经过会根据 URI 的部分信息来查找对应的 Controller 中方法,RestfulToolkit 提供了一套 RESTful 服务开发辅助工具集,提供了如下功能:
根据 URL 直接跳转到对应的方法定义 ( Ctrl \ or Ctrl Alt N ); 提供了一个 Services tree 的显示窗口; 一个简单的 http 请求工具; 在请求方法上添加了有用功能: 复制生成 URL;,复制方法参数... 其他功能: java 类上添加 Convert to JSON 功能,格式化 json 数据 ( Windows: Ctrl + Enter; Mac: Command + Enter )。
详细使用文档,参考:https://plugins.jetbrains.com/plugin/10292-restfultoolkit
参考:https://plugins.jetbrains.com/plugin/7125-grep-console
不同级别日志通过颜色区分,一路了然
高亮日志
便捷检索日志
开发中,有时可以通过BeanUtil等工具类进行对象之间的属性拷贝,但有时候也需要手工进行赋值。通过GenerateAllSetter,可以一键生成对象的所有set语句。
参考:https://plugins.jetbrains.com/plugin/9228-iedis 使用参考:https://codesmagic.com/iedis/userguide/getting-started 可方便的执行增删查改及使用命令行进行操作。
最骚的操作是什么?帆哥在群里分享了一套「半中文编程」:说到了变量命名,先用中文写好,然后用 Translation 插件的 translate and replace 一键替换为英文,这样效率高而且准确。详细使用文档,参考:https://plugins.jetbrains.com/plugin/8579-translation
18、CodeGlance
一般idea 使用sql输出都是用的是log4j,但是这个只是把入参的地方用?占用,后面再按顺序列出入参,需要运行的时候不太方便,还需要拼接,但是Mybatis Log Plugins是直接打印输出所运行的sql语句。
二、使用Mybatis Log Plugins
1、打开Mybatis Log Plugins窗口:【Tool】—【Mybatis Log Plugins】
2、再下侧工具按钮找到【Mybatis Log Plugins】,点击就可以看到所有执行的Sql语句
JRebel是一种热部署生产力工具,修改代码后不用重新启动程序,所有的更改便可以生效。它跳过了Java开发中常见的重建、重新启动和重新部署周期。
新出的SonarLint的扫描引擎直接安装在本地,速度超快,实时探测代码技术债务,给程序员最快速的反馈,排除代码异味的绝佳利器,帮助程序员获得Clean code。 新版SonarLint也能链接SonarQube服务器,但这并不必要。本地安装SonarLint来做代码本地扫描,本地发现本地修改,而且能快速看到修改结果,快速处理代码臭味,有效控制技术债务。
代码提示工具,扫描你的代码后,根据你的敲击完美提示
Codota基于数百万个开源Java程序和您的上下文来完成代码行,从而帮助您以更少的错误更快地进行编码。
插件名称 | 插件介绍 | 官网地址 |
---|---|---|
Gitee | 开源中国的码云插件 | https://plugins.jetbrains.com/plugin/8383-gitee |
Alibaba Java Coding Guidelines | 阿里巴巴出的代码规范检查插件 | https://plugins.jetbrains.com/plugin/10046-alibaba-java-coding-guidelines |
360 FireLine Plugin | 360 的代码静态分析工具 | https://plugins.jetbrains.com/plugin/9292-360-fireline-plugin |
IDE Features Trainer | IntelliJ IDEA 官方出的学习辅助插件 | https://plugins.jetbrains.com/plugin/8554?pr=idea |
Key promoter | 快捷键提示 | https://plugins.jetbrains.com/plugin/4455?pr=idea |
Grep Console | 自定义设置控制台输出颜色 | https://plugins.jetbrains.com/idea/plugin/7125-grep-console |
String Manipulation | 驼峰式命名和下划线命名交替变化 | https://plugins.jetbrains.com/plugin/2162?pr=idea |
CheckStyle-IDEA | 代码规范检查 | https://plugins.jetbrains.com/plugin/1065?pr=idea |
FindBugs-IDEA | 潜在 Bug 检查 | https://plugins.jetbrains.com/plugin/3847?pr=idea |
MetricsReloaded | 代码复杂度检查 | https://plugins.jetbrains.com/plugin/93?pr=idea |
Statistic | 代码统计 | https://plugins.jetbrains.com/plugin/4509?pr=idea |
JRebel Plugin | 热部署 | https://plugins.jetbrains.com/plugin/?id=4441 |
CodeGlance | 在编辑代码最右侧,显示一块代码小地图 | https://plugins.jetbrains.com/plugin/7275?pr=idea |
GsonFormat | 把 JSON 字符串直接实例化成类 | https://plugins.jetbrains.com/plugin/7654?pr=idea |
Markdown Navigator | 书写 Markdown 文章 | https://plugins.jetbrains.com/plugin/7896?pr=idea |
Eclipse Code Formatter | 使用 Eclipse 的代码格式化风格,在一个团队中如果公司有规定格式化风格,这个可以使用。 | https://plugins.jetbrains.com/plugin/6546?pr=idea |
Jindent-Source Code Formatter | 自定义类、方法、doc、变量注释模板 | http://plugins.jetbrains.com/plugin/2170?pr=idea |
Translation | 翻译插件 | https://github.com/YiiGuxing/TranslationPlugin |
Maven Helper | Maven 辅助插件 | https://plugins.jetbrains.com/plugin/7179-maven-helper |
Properties to YAML Converter | 把 Properties 的配置格式改为 YAML 格式 | https://plugins.jetbrains.com/plugin/8000-properties-to-yaml-converter |
Git Flow Integration | Git Flow 的图形界面操作 | https://plugins.jetbrains.com/plugin/7315-git-flow-integration |
Rainbow Brackets | 对各个对称括号进行着色,方便查看 | https://github.com/izhangzhihao/intellij-rainbow-brackets |
MybatisX | mybatis 框架辅助(免费) | https://plugins.jetbrains.com/plugin/10119-mybatisx |
Lombok Plugin | Lombok 功能辅助插件 | https://plugins.jetbrains.com/plugin/6317-lombok-plugin |
.ignore | 各类版本控制忽略文件生成工具 | https://plugins.jetbrains.com/plugin/7495--ignore |
mongo4idea | mongo客户端 | https://github.com/dboissier/mongo4idea |
iedis | redis客户端 | https://plugins.jetbrains.com/plugin/9228-iedis |
VisualVM Launcher | 项目启动的时候也启动 VisualVM | https://plugins.jetbrains.com/plugin/7115-visualvm-launcher |
GenerateAllSetter | new POJO类的快速生成 set 方法 | https://plugins.jetbrains.com/plugin/9360-generateallsetter |