整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

IDEA 2021首个大版本发布,Java开发者感动哭了(附新亮点演示)

欲善其事,必先利其器!

就在不久之前,Java领域的开发神器IntelliJ IDEA终于迎来2021年的一个重要的大版本更新:IntelliJ IDEA 2021.1

现如今大量的Java开发者深度依赖着这款开发软件,正如网上的段子所言:“可以毫不夸张地说,多少Java程序员离开了IDEA就不会写代码了(狗头)”,由此可见其使用的广泛程度。

新版本一出来,我也迫不及待地想尝试一番。当然,主力开发机我是不敢乱升级的,所以这两天,我在一台平时用来做测试的老开发本子上更新了全新的IDEA。

软件启动界面打开的那一瞬间,我就知道事情并不简单。


全新的启动页面

更新后,全新的启动页面更加花里胡哨了。

软件启动速度也是非常之快,就我这多年苦练的火箭般手速,都差点没截来下面这张启动页面图。


Space集成

JetBrains提供的Space这个功能不知道大家有没有听说过,讲白了就是一套集成的团队协作环境,可以提供包括构建交付、聊天协作、团队管理以及项目管理等在内的一整套协作一体化解决方案。

最新的IDEA 2021.1把Space环境给无缝地集成进来了,现在属于开箱即用的状态,软件的右上角就有快捷入口:


支持WSL 2

这个功能相信对于很多依赖Windows系统以及WSL功能的用户来说,简直是喜大普奔!

以前WSL就算再好用,但是你的IDE并没有和它打通,多少总是一个遗憾。

这下好了,二者直接打通了,IDEA支持WSL 2。你可以直接在新版IDEA 2021.1中运行并开发WSL 2中的Java项目,包括Gradle类型项目和Maven类型等项目均支持。


Run Targets

Run Targets这个功能的意思有点类似于上面刚聊过的WSL 2。它允许开发者直接在远程主机甚至在Docker容器上运行和调试项目。

所以到目前为止,新版IDEA 2021允许开发者可以在本地、WSL 2、SSH远程主机、Docker等目标上运行项目,可以说贼香了!


支持Java 16

这也算是一个比较重磅的更新。

近两年来,Java版本的发布速度也是快如老狗,我还在用Java 8,它都淦到Java 16了。

关于Java 16的新特性,我还准备写篇文章来详细聊一聊呢,包括比如:

  • Records特性转正
  • instanceof模式匹配转正
  • jpackage转正
  • Unix域套接字通道
  • 弹性Metaspace
  • ZGC
  • 矢量API
  • 外部链接API
  • ...

这次IDEA 2021版的一个很重要的更新就是加入了对Java 16的基本支持,注意是基本支持。

除此之外IDEA还新增了几项检查机制,典型比如更加智能的数据流分析检查。

链式构造方式的优化格式设置等等。

目的都是为了帮助提升可读性,进一步提升用户体验。


Code With Me

Code With Me是一项用于协作开发与结对编程的服务,可以实Host-Guest模式的“手摸手”(滑稽)结对编程和群体编程。

目前,新版IDEA开箱即用地支持了Code With Me功能,同时它还具有音频通话和视频通话功能,可以满足随时随地的沟通需求,这操作简直骚到爆。

版本控制

版本控制这一块目前做了不少的更新,包括可以更快地完成PR的创建提交,支持PR模板。

变更提交至代码库前的自定义代码检查配置。

以及支持自定义Git提交模板等等。


其他用户体验提升

IDEA内置HTML网页预览

以前在IDEA中预览网页得跳到外部浏览器,而现如今IDE的编辑器内部就支持Built-in级别的网页预览,只需要在右上角点那个IDEA小图标即可激活,而且可以编辑网页源码时做到同步更新和预览。

Windows版本任务栏增强

在Windows平台的新版IDEA上,可直接在任务栏(或开始菜单)上右键快捷呼出最近使用的项目。

搜索时自定义外部依赖项

讲白了,就是使搜索范围更易于自定义,我们可以直接在设置中进行Scope定义,自行选择External Dependencies的范围是否包含。

窗口拆分优化

当你对编辑器里的多个文件进行垂直窗口拆分时,双击某个Tab就可以将当前文件窗口最大化,再次双击Tab则会还原。


当然除了这些之外,新版IDEA还新增了很多更新和增强,比如:对Kotlin、Scala、JavaScript等语言的开发优化、对常见框架与技术的优化和支持、对Kubernetes和Docker的更新支持和改进、数据库工具的更新支持等等,由于时间有限,在此就不一一赘述了,有需要的可以按需细究。

最后,让我们一起大喊一句:“IDEA,yyds!”

DEA全称是IntelliJ IDEA,是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具,尤其是智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具整合、代码分析、创新的GUI设计等方面的功能可以说是超常的。而且他的旗舰版还支持HTML、CSS、PHP、MySQL、Python等。免费版只支持java,Kotlin等少数语言。


IDEA的特色功能

IDEA所提倡的是智能编码,是减少程序员的工作,idea的特色功能有以下几点:

●智能的选取

在很多时候我们要选取某个办法,或某个循环或一步步从一个变量到整个类的慢慢扩充着选取,idea就提供这种基于语法的选择,在默认设置中ctrl+w,可以实现选取范围的不断扩充,这种方式在重构的时尤其显得方便。

●历史记录功能

不用通过版本管理服务器,单纯的idea就可以查看任何工程中文件的历史记录,在版本恢复是你可以很容易的将其恢复。

●丰富的导航模式

IDEA提供了丰富的导航查看模式,例如crtl+E显示最近打开过的文件,crtl+N显示你希望显示的类名查找框。在最基本的project视图中,你还可以选择多种的视图方式。

 编码辅助
Java规范中提倡的toString()、hashCode()、equals()以及所有的get/set方法,你可以不用进行任何的输入就可以实现代码的自动生成,从而把你从无聊的基本方法编码中解放出来。
● 灵活的排版功能
基本所有的IDE都有重排版功能,但仅有IDEA的是人性的,因为它支持排版模式的定制,你可以根据不同的项目要求采用不同的排版方式。
● 
XML的完美支持
xml全提示支持:所有流行框架的xml文件都支持全提示,谁用谁知道。
● 动态语法检测
任何不符合java规范、自己预定义的规范、累赘都将在页面中加亮显示。
● 代码检查
对代码进行自动分析,检测不符合规范的,存在风险的代码,并加亮显示。
● 
对JSP的完全支持
不需要任何的插件,完全支持JSP。
● 智能编辑
代码输入过程中,自动补充方法或类。
 EJB支持
不需要任何插件完全支持EJB(6.0 支持EJB3.0)
 列编辑模式
用过UtralEdit的肯定对其的列编辑模式赞赏不已,因为它减少了很多无聊的重复工作,而IDEA完全支持该模式,从而更加提高了编码效率。
● 
预置模板
预置模板可以让你把经常用到的方法编辑进模板,使用时你只用输入简单的几个字母就可以完成全部代码的编写。例如使用比较高的public static void main(String[] args){}你可以在模板中预设pm为该方法,输入时你只要输入pm再按代码辅助键,IDEA将完成代码的自动输入。
 完美的自动代码完成
智能检查类中的方法,当发现方法名只有一个时自动完成代码输入,从而减少剩下代码的编写工作。
● 
版本控制完美支持
集成了市面上常见的所有版本控制工具插件,包括git、svn、github,让开发人员在编程的工程中直接在intellij idea里就能完成代码的提交、检出、解决冲突、查看版本控制服务器内容等等。
● 
不使用代码的检查
自动检查代码中不使用的代码,并给出提示,从而使代码更高效。
● 智能代码
自动检查代码,发现与预置规范有出入的代码给出提示,若程序员同意修改自动完成修改。例如代码:String str = "Hello Intellij " + "IDEA"; IDEA将给出优化提示,若程序员同意修改IDEA将自动将代码修改为:String str = "Hello Intellij IDEA";
● 
正则表达式的查找和替换功能
查找和替换支持正则表达式,从而提高效率。
● 
JavaDoc预览支持
支持JavaDoc的预览功能,在JavaDoc代码中Ctrl+Q显示JavaDoc的结果,从而提高doc文档的质量。
● 程序员意图支持
程序员编码时IDEA时时检测你的意图,或提供建议,或直接帮你完成代码。

这就是IDEA的优点,看完如需下载安装包或pojie版本可评论留言



者介绍 | 梁桂钊——微微科技架构师

一、官方工具

IntelliJ IDEA 默认安装并提供了非常多的工具,比如 Git Integration、Maven Integration、Markdown support、SSH Remote Run 等。其中有很多好用,但是不为人知的工具。

1. REST client

在日常开发过程中,我们或多或少都涉及到 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/


2. UML Support

如果需要研究源码,内置 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
  • K8s工具:Kubernetes
  • 中英文翻译工具:Translation

1. 阿里代码规约检测

目前,插件检测有两种模式:实时检测、手动触发。详细使用文档,参考: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。

2. 快捷键提示工具:Key promoter X

Key Promoter X 是一个快捷键提示插件,如果鼠标操作是能够用快捷键替代,Key Promoter X 会提示可以用什么快捷键替代。详细使用文档,参考:https://plugins.jetbrains.com/plugin/9792-key-promoter-x


3. 代码注解插件:Lombok

lombok 的使用,参考 :https://projectlombok.org/。我们需要在代码中引入三方库,然后安装 lombok 插件即可。

<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>最新版本号</version></dependency>

4. 代码生成工具:CodeMaker

开发过程中,经常手工编写重复代码。现在,可以通过 CodeMaker 来定义 Velocity 模版来支持自定义代码模板来生成代码。目前,CodeMaker 自带两个模板。Model:根据当前类生成一个与其拥有类似属性的类,用于自动生成持久类对应的领域类。Converter:该模板需要两个类作为输入的上下文,用于自动生成领域类与持久类的转化类。

详细使用文档,参考:https://github.com/x-hansong/CodeMaker

5. 单元测试测试生成工具:JUnitGenerator

单元测试是必不可少的!我们可以使用 JUnitGenerator 插件来自动创建了单元测试。我们可以使用提供的 velocity 模板定制单元测试输出代码。如果在已经存在单元测试的地方创建了单元测试,则会提示用户进行覆盖或合并操作。合并操作允许用户有选择地创建目标文件内容。详细使用文档,参考:https://plugins.jetbrains.com/plugin/3064-junitgenerator-v2-0

6. Mybatis 工具:Free Mybatis plugin

现在,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/

7. Maven辅助神器:Maven Helper

如果 Maven 引入的 jar 包有冲突,可以使用 Maven Helper 插件来帮助分析。详细使用文档,参考:https://plugins.jetbrains.com/plugin/7179-maven-helper


8. JSON转领域对象工具:GsonFormat

在开发过程中,我们可能会遇到 json 格式的字符串转换成实体类参数的场景,这个插件可以根据 JSONObject 格式的字符串,自动生成实体类参数。详细使用文档,参考:https://github.com/zzz40500/GsonFormat

那么,如何使用呢?我们可以使用 GsonFommat 的快捷键,默认 option + s (mac), alt + s (win) 通过以下方式修改快捷键。或者点击工具栏的 Generate 来唤起生成工具。


9. 领域对象转JSON工具:POJO to JSON

为了测试需要,我们需要将简单 Java 领域对象转成 JSON 字符串方便用 postman 或者 curl 模拟数据。详细使用文档,参考:https://plugins.jetbrains.com/plugin/9686-pojo-to-json


10. 时序图生成工具:SequenceDiagram

有的时候,我们需要梳理业务逻辑或者阅读源码。从中,我们需要了解整个调用链路,反向生成 UML 的时序图是强需求。其中,SequenceDiagram 插件是一个非常棒的插件。详细使用文档,参考:https://plugins.jetbrains.com/plugin/8286-sequencediagram


11. 字符串工具:String Manipulation

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

12. 代码作色工具:Rainbow Brackets

Rainbow Brackets 插件可以实现配对括号相同颜色,并且实现选中区域代码高亮的功能。

详细使用文档,参考:https://plugins.jetbrains.com/plugin/10080-rainbow-brackets


事实上,代码作色之后,可以非常方便我们阅读。类似的工具还有:Grep Console 来自定义设置控制台输出颜色等。

13. RESTful 服务开发辅助工具集: RestfulToolkit

开发中,经过会根据 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


14. 日志工具:Grep Console

参考:https://plugins.jetbrains.com/plugin/7125-grep-console

不同级别日志通过颜色区分,一路了然


高亮日志


便捷检索日志


15. 生成对象set方法:GenerateAllSetter

开发中,有时可以通过BeanUtil等工具类进行对象之间的属性拷贝,但有时候也需要手工进行赋值。通过GenerateAllSetter,可以一键生成对象的所有set语句。


16. Redis可视化:Iedis

参考:https://plugins.jetbrains.com/plugin/9228-iedis

使用参考:https://codesmagic.com/iedis/userguide/getting-started 可方便的执行增删查改及使用命令行进行操作。


17. K8s工具:Kubernetes

参考 https://plugins.jetbrains.com/plugin/10485-kubernetes 支持编辑 Kubernetes 资源文件,如下:可以比较方便的查看yaml中的各项 placeholder 的默认值,且可以方便的链接到value位置。


18. 中英文翻译工具:Translation

最骚的操作是什么?一位小伙伴说过:说到了变量命名,先用中文写好,然后用 Translation 插件的 translate and replace 一键替换为英文,这样效率高而且准确。详细使用文档,参考:https://plugins.jetbrains.com/plugin/8579-translation