JetBrains最近发布了IntelliJ IDEA 2017.3,带来了很多新特性,包括增强对Java、Java EE 8、Spring Boot、Kotlin和Docker的支持。2017.3是在2017.2之后三个月发布的,在正式发布之前,JetBrains已经提供了最新的公共预览版,用于收集社区的问题反馈。下面列出一些主要的特性改进。

\u0026#xD;\n\u0026#xD;\n

Java EE 8

\u0026#xD;\n\u0026#xD;\n

与Java EE 8相关的特性包括支持CDI 2.0和Servlet 4.0的HTTP/2。

\u0026#xD;\n\u0026#xD;\n

CDI 2.0方面的增强:

\u0026#xD;\n\u0026#xD;\n
  • 异步事件——可以在已触发和已接收到的CDI异步事件之间跳转。\u0026#xD;\n
  • 动态Bean——这是CDI的一个扩展,可以在注入点和注入的Bean之间跳转。\u0026#xD;\n
  • 支持隐式(不需要beans.xml配置文件)和显式的Bean归档(archive)。\u0026#xD;\n

下面是CDI 2.0异步事件相关特性的演示。

\u0026#xD;\n\u0026#xD;\n

b535770cdab9731e72ed7daffa3c1ca0.gif\"

\u0026#xD;\n\u0026#xD;\n

Java Servlet 4.0规范(JSR 369)引入了服务器端推送特性,其中包括一个新的PushBuilder接口。如下图所示,最新发布的IntelliJ IDEA为PushBuilder提供了路径自动完成功能。

\u0026#xD;\n\u0026#xD;\n

900ae2778a99436b58a6b327e3bf628d.gif\"

\u0026#xD;\n\u0026#xD;\n

可配置的命令行参数缩短器

\u0026#xD;\n\u0026#xD;\n

可配置的命令行参数缩短器(shortener)可以用于缩短类路径长度,这在项目的类路径长度超过了操作系统的命令行长度限制时是非常有用的。JetBrains的市场经理Zlata Kalyuzhnaya讲述了在实现这一特性时遇到的挑战:

\u0026#xD;\n\u0026#xD;\n
缩短类路径长度有多种方式,最开始,IntelliJ IDEA将类路径写到文本文件里(这就需要一个额外的中介类加载器),但其他一些框架并不支持这么做,如JMock。后来,IntelliJ IDEA尝试了更加标准的做法,就是将类路径打包进classpath.jar里,可惜,某些框架仍然不支持这种方式。
\u0026#xD;\n我们无法预测哪一种方式可以适用于用户的应用程序,所以我们就把决定权交给了用户。2017.3版本的IntelliJ IDEA为应用程序、JUnit和TestNG提供了可配的命令行缩短器。
\u0026#xD;\n\u0026#xD;\n

Spring Boot和Spring MVC

\u0026#xD;\n\u0026#xD;\n

对Spring Boot和Spring MVC最新的支持包括了Spring Boot配置文件的语法高亮、Spring Boot 2.0 Actuator端点、Spring Cloud框架和MVC Context自动检测。如下图所示,在Spring MVC应用程序的相关文件之间跳转现在变得更加容易。

\u0026#xD;\n\u0026#xD;\n

2493930b661e3e28b3b14acf11eae5a6.gif\"

\u0026#xD;\n\u0026#xD;\n

在运行Spring Boot 2.0的应用程序时,运行仪表盘区域为它们提供了相关的端点信息。

\u0026#xD;\n\u0026#xD;\n

6441b640512eeb3805e022778d95d734.png\"

\u0026#xD;\n\u0026#xD;\n

JUnit 5

\u0026#xD;\n\u0026#xD;\n

IntelliJ IDEA在JUnit 5正式发布之前就已支持它,而最新版本则提供了更多的特性,包括可选择性地将单元测试用例迁移至JUnit 5。例如,假设有下列所示的JUnit 4单元测试用例:

\u0026#xD;\n\u0026#xD;\n
\u0026#xD;\n    \u0026#xD;\nimport org.junit.Assert;\u0026#xD;\nimport org.junit.Test;\u0026#xD;\n\u0026#xD;\npublic class FirstTest {\u0026#xD;\n\u0026#xD;\n    @Test\u0026#xD;\n    public void myFirstTest() {\u0026#xD;\n        Assert.assertEquals(\"one plus one should equal two\
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐