为什么IntelliJ IDEA最适合Java开发


Java开发人员习惯于编制工作并完成工作。IntelliJ IDEA是我最喜欢的工具之一,我认为写我最喜欢的细节会很有趣。在此之前,让我分享我的发展历史。

我的Java开发经验始于90年代后期-我使用HomeSite作为编辑器,它是Nick Bradbury开发的HTML编辑器。HomeSite使其易于查看代码,因为它默认为普通视图,而不是像FrontPage和Dreamweaver那样的所见即所得。我经常回头对我以前的工作方式笑起来:我会在Google上导入语句,然后将其复制/粘贴到编辑器中。

在2000年代,我尝试了其他两个IDE,但是它们总是占用过多的内存,而且从未与我已经习惯的HomeSite相比。然后,我找到了Eclipse。我第一次使用它时就爱上了它-它具有熟悉的外观和感觉,并且快速有效。

我对Eclipse的热爱直到2006年我开始将AppFuse迁移到Maven时就结束了。IntelliJ IDEA对模块的Maven支持对我来说效果更好,所以我切换了。在2002年晚些时候,我开始更多地从事Web开发工作,发现IDEA具有强大的HTML,JavaScript和CSS支持,从那以后就再也没有回头。

从IntelliJ IDEA运行您的Java应用程序 我以前更喜欢使用Ant或Maven从命令行运行我的应用程序。然后,随之而来的是Spring Boot。Spring Boot是一个普通的Java应用程序,带有一个public static void main()。由于这是任何Java应用程序的标准部分,因此Java IDE可以更轻松地运行应用程序。

实际上,如果转到File > New > Project,您会看到IDEA支持许多流行的Java框架,例如Spring Boot,Micronaut,Quarkus和MicroProfile。

1607028068734.png

如果选择这些框架中的任何一个,则多步骤向导将指导您完成所有选项。

在IntelliJ IDEA中运行Spring Boot Apps 如果选择Spring Boot,它甚至会为您创建一个运行配置,其名称与您的主Application类相匹配。在下面的屏幕快照中,按钮如下:

1607028096137.png

左侧的锤子图标将构建您的项目

播放图标将运行您的项目

错误图标将在调试模式下运行您的项目

最右边的图标将在代码覆盖范围内运行

如果您正在使用Spring Boot进行微服务,那么还可以使用运行仪表板来启动/停止/监视所有服务。为了演示它的外观,您可以使用Spring Cloud Gateway从Secure Reactive Microservices中克隆示例代码,然后在IDEA中将其打开:

git clone https://github.com/oktadeveloper/java-microservices-examples.git
cd java-microservices-examples/spring-cloud-gateway
idea .

下载依赖项并初始化项目后,您将在右下角看到“服务”弹出窗口。

单击它,它将展开为您提供几个选项。单击第一个以显示运行配置。

1607028430579.png

这将显示运行仪表板,您将看到列出的所有应用程序。您可以单击“未启动”元素,然后单击“播放”图标以将其全部启动。

1607028452648.png

太酷了,是吗?

1607028606363.png

在IntelliJ IDEA中运行Micronaut应用程序 Micronaut与Spring Boot相似,因为它1有一个public static void main()。当我使用IDEA的Micronaut向导创建新应用时,它没有为我生成任何运行配置。但是,当我单击该main()方法旁边的播放图标时,它使我可以轻松地创建一个。

1607028640730.png

在IntelliJ IDEA中运行Quarkus应用 Quarkus有点不同-它没有main()方法。您必须运行quarkus:devMaven目标才能启动应用程序。好消息是,您可以通过在Maven工具窗口中右键单击目标并选择第二个选项来从中创建运行(或调试)配置。

1607028674415.png

配置环境变量 您可能想知道,“为什么需要运行配置?” 首先,很高兴单击一个按钮(或使用键盘快捷键)来启动和重新启动您的应用程序。其次,它为您提供了一种配置JVM选项和环境变量的方法。

例如,如果您将Spring Boot与Okta的Spring Boot启动器一起使用,则需要使用环境变量,而不是在源代码中放置客户端密码。

1607028696820.png

调试您的Java应用 无论语言如何,在应用程序中设置断点并进行调试是软件工程师的一项宝贵技能。

在IntelliJ IDEA中,您可以单击要调试的行旁边的左侧装订线。然后,使用调试配置运行您的应用程序,它将在您的断点处停止。然后,您可以进入,跨步等。

1607028722989.png

通过IntelliJ IDEA中的Maven进行调试 如果您使用Maven启动应用程序,则也可以对其进行调试。在此示例中,让我们使用Micronaut。如果运行mvnDebug mn:run,它将等待您在端口8000上附加远程调试器。要在IntelliJ IDEA中创建远程调试配置,请转至“添加配置” >“ +” >“远程”并为其命名。然后将端口更改为8000。

1607028759715.png

通过IntelliJ IDEA中的Gradle进行调试 Gradle具有类似的功能。例如,如果您使用Gradle创建了Spring Boot应用程序,则可以使用以下命令启动它以在调试模式下运行。

gradle bootRun -Dorg.gradle.debug=true --no-daemon

在这种情况下,默认情况下,Gradle会侦听端口5005,因此您需要修改远程配置才能侦听此端口。

坦白:在我了解可以远程调试任何Java应用程序之前,我曾担任Java开发人员五年以上。它所要做的就是用一些额外的参数启动Java应用程序,并且它会一直等到您附加到该应用程序上。例如:

java -agentlib :jdwp = transport = dt_socket ,server = y ,suspend = n ,address = *:5005 -jar path / to / jar.jar

2020-12-03-at-13420-pm.png

从IntelliJ IDEA运行Java测试 当我使用Java构建工具从命令行运行测试时,通常会运行所有测试。

# Maven
mvn test
# Gradle
gradle test

当测试失败时,我知道可以通过在命令中添加额外的参数来将其作为单独的测试运行,但是我更喜欢在IDEA中对测试进行迭代。

IntelliJ具有出色的测试支持。当您在编辑器中打开Java测试时,测试类和各个方法旁边会出现一个播放图标。单击它,您将获得运行,调试,覆盖运行或编辑配置的选项。

1607031378008.png 我经常使用这种支持来运行和调试各个测试。

1607031416071.png

您还可以通过在页面上单击鼠标右键,然后选择“运行测试”选项来在程序包级别运行它们。

screen-shot-2020-12-03-at-13737-pm.png

我最喜欢的IntelliJ IDEA键盘快捷键 我是键盘快捷键的忠实拥护者,因为将手放在键盘上可以提高效率。由于我进行了大量演示并使用键盘快捷键,因此我使用Presentation Assistant在演示过程中显示命令(并学习Windows / Linux命令)。

我还建议您使用ShortcutFoo学习和练习您喜欢的IDE的快捷方式。几年前,我从Venkat Subramaniam得知了这个站点。

以下是我每天使用的一些IntelliJ IDEA键盘快捷键。

MACOS SHORTCUT WINDOWS/LINUX PURPOSE
⌘+Shift+N Ctrl+Shift+N Find files
⌘+E and ⌘+Shift+E Ctrl+E and Ctrl+Shift+E Recent files and Recent locations
⌘+/ and ⌘+Shift+/ Ctrl+/ and Ctrl+Shift+/ Comment/uncomment a line and multiline comments
⌘+Option+L Ctrl+Alt+L Reformat code
⌘+Option+O Ctrl+Alt+O Optimize imports
Press Ctrl twice Run Anything (e.g., mvn compile)

您也可以使用⌘+ Shift+A弹出操作对话框并搜索命令。哎呀,您甚至可以创建自己的快捷方式!

screen-shot-2020-12-03-at-14249-pm.png

IDEA的命令行启动器 您是否知道可以安装命令行启动器(“工具” >“创建命令行启动器”)并从终端打开项目?例如:

# Maven
idea pom.xml
# Gradle
idea gradle.build
# Figure it out for me
idea .

该IDEA CLI有其他命令状diff,并format过,但我从来没有使用过。

Markdown和AsciiDoc支持 我写这样的博客文章和编写Java代码一样多。我一直是写HTML的忠实粉丝,直到花了一年时间写大部分Markdown为止。现在,我更喜欢Markdown而不是HTML,AsciiDoc更好!

我喜欢AsciiDoc,因为它支持目录,带有标注的代码块,警告(提示,注释等)之类的东西,并且我使用了它(与Asciidoctor一起)来编写JHipster Mini-Book

IntelliJ IDEA捆绑了Markdown支持,当我不得不用Markdown编写时,它“足够好”。

我将IntelliJ AsciiDoc Plugin用于AsciiDoc创作。在过去的几年中,这个插件变得非常好,我几乎在IDEA中进行所有创作,并且仅通过构建工具将其呈现为质量检查流程。

本地历史真是太棒了! IntelliJ的本地历史记录支持可以挽救生命。由于此功能,我尝试在IDEA中编辑所有基于文本的文件。如果事情崩溃了,或者我想回到以前写的内容,那么本地历史将非常有用。

只需右键单击文件或目录,然后转到“本地历史记录” >“显示历史记录”。

IntelliJ Live模板 预录制演示代码段并提高生产率的一种很棒的方法是使用Live Templates。

对于Java,一些内置的是sout和fori。您键入这些字符,单击选项卡,它会扩展为所需的代码。

我几乎对所有截屏视频都使用实时模板,并在github.com/mraible/idea-live-templates上对其进行更新。

例如,这ss-resource-config是将Spring Security配置为OAuth 2.0资源服务器的快捷方式。

import com.okta.spring.boot.oauth.Okta;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;

@EnableWebSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        // @formatter:off
        http
            .authorizeRequests().anyRequest().authenticated()
            .and()
            .oauth2ResourceServer().jwt();
        // @formatter:on
        Okta.configureResourceServer401ResponseBody(http);
    }
}

要添加新的实时模板,请选择要保存的代码,然后转到“工具”。

screen-shot-2020-12-03-at-23347-pm.png

Web框架支持 如果您是Java的核心开发人员,那么您可能不关心Web框架的支持。也就是说,除非您的Web框架需要Java代码,例如Wicket或GWT。就个人而言,我是JavaScript的狂热者,并且不信任Java开发人员为我编写JavaScript。我是一个全栈开发人员,并且我喜欢JHipster!

由于Maven多模块支持,我于2006年首次切换到IntelliJ IDEA。我坚持使用它是因为2009年我转向了前端开发。我发现IDEA的HTML,CSS和JavaScript支持非常出色。它会自动获取我的ESLint设置,并且可以正常工作。

捆绑了对Angular的支持,并且有很多React插件。我从来没有安装任何东西,因为我没有需要。就Vue而言,有一个来自JetBrains的Vue.js插件。


原文链接:http://codingdict.com