IDEA高效实践

  • Post author:
  • Post category:其他




一、概述

IDEA(IntelliJ IDEA)是业界公认的最好开发工具之一,当然好不好也因人而异,也不要刻意去争谁强谁弱,高手往往不在乎手中的兵器是什么的。个人而言,更高效的工具适合每个开发人员,在编写代码的时候花的时间少,就有更多的时间去设计代码,当然,使用一个陌生的IDE,效率肯定是比不上自己熟练的IDE的,所以为了节省诸君的学习成本,也为了更快地去接纳和熟练IDEA,所以周末之余,故作此文。—- 一品江南


准备

  • 所有的电脑软件都有着相同的UI框架、菜单结构,对于每一个开发人员来说,基本的文件操作、项目操作、工作空间操作不成问题,不会讲到。
  • 涉及的其他工具(Maven、Git等)不会详细讲,只会讲到如何操作,想要深入学习,关注其他博文。



二、配置

在安装软件(JDK、Maven、Git、IDEA)搭建好环境后,要对IDEA进行一番配置,才能开始开发,每个人都有每个人的配置习惯,可以自己研究自己喜欢的配置,进入IDEA的配置 File | Settings(

Ctrl+Alt+S

)开始配置。

选择菜单或设置步骤使用 “|” 分开,后面操作一样



1. 主题与行为

选择自己喜欢的主题:Appearance & Behavior | Appearance | Theme

配置骚气的背景图片:Appearance & Behavior | Appearance | UI Options | Background Image…

在配置中选择合适的窗口选项:Appearance & Behavior | Appearance | Window Options


  • Animate windows:关闭动画效果

  • Show memory indicator:显示内存使用情况

  • Show tool window bars:关闭工具栏显示,按两次

    Alt

    键可以显示

  • Small labels in editor tabs:编辑器显示小标签

配置自己想看到的菜单项和工具栏:Appearance & Behavior | Menus and Toolbars

配置启动退出和保存同步:Appearance & Behavior | System Settings



2. 快捷键与编辑器

配置快捷键:Keymap

配置Git的Pull操作快捷键:Version Control Systems | Git | Repository | Pull 添加

Alt+P


配置Maven窗口显示快捷键:Tool Windows | Maven 添加

Alt+3

优化导包:Editor | General | Auto Import | Java

Insert imports on paste:

All

:粘贴的时候导入全部包


  • Add unambiguous imports on the fly

  • Optimize imports on the fly (for current project)

配置显示行号和方法分隔线:Editor | General | Appearance


  • Show line numbers

  • Show method separators

配置代码折叠规则:Editor | General | Code Folding

配置编辑器标签页:Editor | General | Editor Tabs


  • Show tabs in one row:多行显示标签

配置高效的智能键:Editor | General | Smart Keys


  • Insert paired brackets (), [], <>:成双成对输入

  • Reformat block on typing ‘}’:输入’}’后格式化代码

  • Use “CamelHumps” words:使用驼峰词,使用

    Ctrl+Righ/Left

    可以词内移动

    在这里插入图片描述

  • Jump outside closing bracket/quote with Tab:使用Tab键跳到括号/引号外面

配置牛逼的字体:Editor | Font


  • Enable font ligatures:使用连字符

推荐字段:Fira Code,使用连字符输入

>=,<=,==,!=,=>

等符号有惊喜。

配置文件和代码模板:Editor | File and Code Templates

配置文件编码:Editor | File Encodings

建议全部配置成 UTF-8

配置代码片段:Editor | Live Templates

在这里插入图片描述

添加高效的代码片段可以提高效率



3. 编译构建

配置JDK环境:File | Other Settings | Structure for New Projects… | Project | Project SDK

配置Maven构建:Build, Execution, Deployment | Maven

  • 配置Maven主目录:

    D:/apache-maven-3.5.4

  • 配置用户Maven设置文件:

    D:\apache-maven-3.5.4\conf\settings.xml

  • 配置本地仓库:

    D:\apache-maven-3.5.4\repo


  • Always update snapshots:构建时总是更新依赖快照版本



4. 版本管理

配置Git管理:Version Control | Git

  • 配置Git路径:

    D:\Program Files\Git\bin\git.exe



5. 运行内存

编辑IDEA安装目录下bin目录:

D:\IntelliJ IDEA\bin\idea64.exe.vmoptions

文件

-Xms750m
-Xmx750m

运行内存配置可以配置IDEA初时内存大小和最大内存数,根据自己电脑配置优化



三、视图

好的界面布局和主题,会让开发者更舒适。快速地能看到想要的信息,会让开发者事半功倍。



1. 工具

常用的工具栏默认位于IDEA界面的左、右、下三侧,也可以用鼠标悬停界面左下角图标弹出所有工具栏,你如果在前面

主题与行为

中配置隐藏工具栏显示,可以按两次

Alt

键显示。按键

Esc

可以帮助你从任何激活的工具栏返回到代码编辑。每个工具栏窗口顶部都会有一个

Toolbar

,可快速实现某些常用功能以及配置。

在这里插入图片描述

推荐使用快捷键弹出想要使用的工具栏,不建议修改默认快捷键,但常用的工具栏如果没有快捷键,应当自定义:


  • Alt+1

    :Project

  • Alt+2

    :Favorites

  • Alt+3

    :Maven(自定义)

  • Alt+4

    :Run

  • Alt+5

    :Debug

  • Alt+6

    :TODO

  • Alt+7

    :Structure

  • Alt+9

    :Version Control

  • Alt+F12

    :Terminal



1.1 Project

Project工具栏主要是管理项目文件和目录,所有的项目资源都能在些找到,而且它可以有多种管理形式,可以更好聚焦于当前工作。


管理形式

  • Project:显示项目所有资源
  • Packages:显示项目所有包,适合开发模式
  • Tests:显示项目所有测试资源,适合测试模式
  • Problems:显示项目所有问题,所有存在问题的代码都会列举
  • Changed Files:显示项目所有修改资源,VCS中修改未提交的代码


    Toolbar


    123
  • Scroll form source:从当前打开的文件定位文件树位置
  • Collapse All:折叠所有目录(

    Ctrl+-

  • Setting:打开工具栏设置


    • Flatten Packages:平铺展示所有包

    • Compact Middle Packages:折叠包名显示
  • Hide:隐藏工具栏(

    Shift+Esc

由于所有的工具栏都会有

Setting



Hide

,所以后面不会再说,在

Setting

里面会挑选几个常用的设置说。在

Setting

中的

View Mode

配置工具栏的显示模式:

  • Dock Pinned:钉住停靠显示
  • Dock Unpinned:不钉信停靠显示,激活其他工具栏隐藏
  • Undock:不停靠显示,类似Dock Unpinned
  • Float:浮动显示
  • Window:窗口模式显示,在全屏查看日志时非常有用


技巧

  • 在展开的文件树中,可以直接输入字母对类或包进行模糊搜索,快速定位目标。

    在这里插入图片描述

在很多的窗口都可以这样进行模糊搜索,可以自己大胆尝试,效率大大地提高,不过注意要使用英文输入法。

  • 使用

    Left/Right

    键可以快速折叠/展开当前目录
  • 使用

    Alt+Home

    可以导航当前项目



1.2 Favorites

Favorites可以用来管理开发人员高频使用的目录或文件,可以是包和类,或者是类中的某一行,它分为三类:


项目

:在Project工具栏中对包或类右击选择

Add Favorites

添加


书签

:在Project工具栏中对包或类或者代码某行,按

F11

添加书签


断点

:打断点就会创建

在很多地方使用

F4

快捷键可以快速跳转到源码或目录位置。比如选中

Favorites

中的某个书签或断点,选中

VCS

中的某个记录文件。



1.3. Maven

Maven是管理Maven项目的工具集合,可以执行Maven的生命周期和插件,可以查看依赖等。


Toolbar


在这里插入图片描述

  • Reimport All Maven Projects:重新导入Maven项目和依赖
  • Generate Sources and Update Folders For All Projects:创建源码更新目录
  • Download Sources and/or Documentation:下载源码或文档
  • Add Maven Projects:添加Maven项目
  • Run Maven Build:运行Maven生命周期或插件Goal
  • Execute Maven Goal:运行Maven插件Goal
  • Toggle Offline Mode:切换离线模式
  • Toggle ‘Skip Tests’ Mode:是否跳过测试


Setting


  • Group Modules:Maven模块分组展示

  • Always Show ArtifactId:总是展示项目ArtifactId


Profiles

选择激活Maven配置的Profile



1.4 TODO

TODO是管理项目代码中所有含有

// TODO

注释以及

// FIXME

注释的代码,这类特殊注释可以帮助开发人员处理事务。

在这里插入图片描述



1.5 Structure

Structure可以管理文件结构,包括类、接口等源文件的属性、方法等。


Toolbar


在这里插入图片描述

  • Sort by Visibility:按可见性排序
  • Sort Alphabetically:按字母排序
  • Group Methods by Defining Type:方法按类型分组
  • Show Properties:显示属性
  • Show Fields:显示字段
  • Show non-public:显示非公共的
  • Show Inherited:显示继承的
  • Show Anonymous Classes:显示匿名类
  • Show Lambdas:显示Lambda
  • Autoscroll to Source:自动定位到源码
  • Autoscroll from Source:自动从源码定位



1.6 Version Control

Version Control是版本管理工具,这里使用Git为例,它一般会有两个固定标签页

Local Changes



Log

,用来管理本地修改和提交日志。


Toolbar


在这里插入图片描述

  • Refresh:刷新本地修改列表
  • Commit:提交(

    Ctrl+K

  • Revert:撤消选中的修改(

    Ctrl+Alt+Z

  • Show Diff:查看修改源文件的Diff(

    Ctrl+D

  • Changelists:把修改源文件分组
  • Shelve Silently:搁置修改源文件(

    Ctrl+Alt+H

  • Group By:分组方式:Directory、Repository、Module
  • Ignored Files:忽略的文件
  • Expand All:展开所有目录(

    Ctrl++

  • Collapse All:折叠所有目录(

    Ctrl+-

  • Preview Diff:预览修改源文件的Diff


技巧

  • 查看Diff或者合并冲突的时候使用

    F7/Shift+F7

    查看下一个/上一个修改或冲突。
  • 在提交代码的时候,可以查看历史的Commit信息。

    在这里插入图片描述
  • 在提交代码的时候可以配置提交方式和提交前置事件。

提交方式:

  • Amend commit:和上一次提交合并,等于命令

    git commit --amend
  • Sign-off commit:在提交信息后面追加用户签名

提交前置事件:


  • Alibaba Code Guidelines:阿里开发规约检测(插件)

  • Reformat code:格式化代码

  • Optimize imports:优化包的导入

  • Perform code analyses:代码分析

  • Check TODO(Show All):检查TODO

前置事件非常有用,在提交代码前会自动优化代码的格式以及检查出不合格的代码。

  • 在推送(

    Ctrl+Shift+K

    )代码到远程仓库的时候,可以配置推送Tag以及强推。
  • 在IDEA状态栏右边可以操作Git仓库的分支,包括本地仓库和远程仓库。

    在这里插入图片描述



1.7 Event Log

Event Log 查看IDEA全局操作的所有日志,当某些操作异常了,可以在此找到答案。



1.8 Spring

Spring可以根据当前的Spring框架管理Bean和MVC,对于使用Spring框架的开发人员来说,非常方便。

SpringBean

在这里插入图片描述


技巧

  • 在Spring项目中,在自己创建的properties配置文件,在添加配置的时候,只有默认的

    application.properties

    文件才会有上下文提示,可以在项目右击菜单中

    Open Module Settings



    F4

    )中将properties文件添加到Spring上下文环境中。

    在这里插入图片描述



1.9 Terminal

Terminal是IDEA的集成终端,方便执行命令行。


技巧

  • Windows系统的开发人员会觉得CMD的功能太弱鸡,所以会使用Git软件自带的Bash,可以将Bash集成到IDEA中。

IDEA集成终端配置Bash:File | Settings | Tools | Terminal | Application settings

Shell path:

D:\Program Files\Git\bin\bash.exe

NOTE:如果终端出现乱码问题,可以百度解决,很简单。



2.0 Web

Web工具栏和Java Enterprise工具栏有点类似,在Web项目中,会管理Servlet、Filter、Listener,当然,如果我们的项目中只用到SpringMVC,而不是自己编写Servlet的话,这工具似乎没有太多的作用。



2. 代码

在代码视图中,主要是使用快捷键快速浏览一些代码的信息,这些快捷键在开发过程中也是大有用处的。

  • 查看当前变量、方法、类等的定义:

    Ctrl+Shift+I
  • 查看当前变量、方法、类等的文档注释:

    Ctrl+Q
  • 查看当前方法的参数信息:

    Ctrl+P
  • 查看当前输入表达式信息:

    Ctrl+Shift+P
  • 查看当前上下文信息:

    Alt+Q

    (可以查看当前类文件类定义信息)

    CodeView


技巧

  • 使用

    Ctrl+Shift+I

    快速查看当前枚举、常量的信息
  • 调用方法的时候使用

    Ctrl+P

    查看当前参数输入情况,由其是重载方法的情况
  • 使用

    Ctrl+Shift+P

    快速修改某段代码



3. 文件

在文件视图中,可以导航最近修改的文件或位置。

  • 查看最近修改的文件:

    Ctrl+E
  • 查看最近修改的位置:

    Ctrl+Shift+E


    在这里插入图片描述

    LocationView



4. 窗口

窗口视图可以设置IDEA主界面的显示方式。

  • 演示模式:View | Enter Presentation Mode
  • 专注模式:View | Enter Distraction Mode
  • 全屏模式:View | Enter Full Mode



四、导航

想去哪儿就去哪儿,定位问题与查阅代码都很方便。



1. 文件

  • 类全局查找:

    Ctrl+N
  • 文件全局查找:

    Ctrl+Shift+N
  • 符号全局查找:

    Ctrl+Alt+Shift+N
  • 行/列定位:

    Ctrl+G
  • 退回上/下一个位置:

    Ctrl+Alt + Left/Right
  • 跳转到文件上/下一个修改的位置:

    Ctrl+Alt+Shift + Top/Bottom
  • 切换文件标签页:

    Ctrl+Tab



    Ctrl+Shift+Tab



2. 代码

  • 跳转到属性、方法、类定义的位置:

    Ctrl+B
  • 跳转到接口、方法实现的位置:

    Ctrl+Alt+B
  • 跳转到类型定义的位置:

    Ctrl+Shift+B
  • 跳转到父类,父方法的位置:

    Ctrl+U
  • 跳转类测试类、方法的位置:

    Ctrl+Shift+T
  • 跳转到下一个错误位置:

    F2
  • 跳转到上一个错误位置:

    Shift+F2
  • 跳转到上/下一个方法位置:

    Alt + Top/Bottom
  • 跳转到大括号开头/结尾:

    Ctrl + [/]

在代码编辑器的左侧会存在Gutter图标,在设置 File | Settings | Editor | General | Gutter Icons 中我们可以看到这些图标的含义,单击图标也可以跳转到对应的位置。



3. 结构

  • 查看文件结构:

    Ctrl+F12
  • 查看文件路径:

    Ctrl+Alt+F12
  • 查看类型层次结构:

    Ctrl+H
  • 查看方法层次结构:

    Ctrl+Shift+H
  • 查看调用层次结构:

    Ctrl+Alt+H


技巧

  • 在查找类、文件的时候可以通过特殊符号定位到类中的某个方法或某行。

这个方法在定位问题的时候大有用处,而且只需简单的规则,就可以形成代码的坐标。

  • 使用

    #

    标记类或文件中的某个方法或属性:

    HttpProxy#get
  • 使用

    :

    标记类或文件中的某行某列:

    HttpProxy:37:10

在团队之间发送代码位置的时候,使用右击菜单中

Copy Reference



Ctrl+Alt+Shift+C

)来复制某个类、方法、属性等的唯一坐标,然后开发人员可以使用

Ctrl+N

输入坐标来定位代码。

在这里插入图片描述

  • 查看类型层次结构的时候可以使用

    Ctrl+Alt+U

    来显示类的UML图。

在Project文件树中也可以选择类使用

Ctrl+Alt+U

生成UML图。

在这里插入图片描述



五、代码

高效编辑代码,节省苦力活,缩短开发时间,今天不加班。



1. 插入

  • 重写父类方法:

    Ctrl+O
  • 实现父类接口:

    Ctrl+I
  • 生成代理方法:Code | Delegate Methods
  • 生成多种代码:

    Alt+Insert


    • Constructor

      :构造方法

    • Getter

      :Get方法

    • Setter

      :Set方法

    • Getter and Setter

      :Get方法和Set方法

    • equals() and hashCode()

      :equals方法和hashCode方法

    • toString()

      :toString方法

    • Test

      :测试类或测试方法

    • Copyright

      :版权信息

    • @Autowired Dependency

      :注入Spring Bean
  • 插入包围代码:

    Ctrl+Alt+T


    • if / else / while / for

    • try / catch / finally

    • synchronized / Runnable

    • region...endregion Comments
  • 去除包围代码:

    Ctrl+Shift+Delete
  • 补全当前词语:

    Alt+/



    Alt+Shift+/
  • 当前行前面插入一行:

    Ctrl+Alt+Enter
  • 当前行后面插入一行:

    Shift+Enter
  • 删除当前行或选中行:

    Ctrl+Y
  • 重复插入当前行或选中行:

    Ctrl+D

在编写代码的时候,经常会要记录一些非代码文件,可以使用

Ctrl+Alt+Shift+Insert

来新建草稿文件,支持多种格式,新建好的草稿文件会保存在 Project 文件树的

/Scratches and Consoles/Scratches

目录下。



2. 选择

  • 选择当前光标所在区域:

    Ctrl+W

    ,重复使用扩大选择范围
  • 缩小当前选择范围:

    Ctrl+Shift+W
  • 选择当前光标所在表达式:

    Ctrl+Shift+P



3. 格式

  • 插入行注释:

    Ctrl+/
  • 插入块注释:

    Ctrl+Shift+/
  • 格式化代码:

    Ctrl+Alt+L
  • 自动缩进对齐:

    Ctrl+Alt+I
  • 生动优化导包:

    Ctrl+Alt+O
  • 列自动对齐:Code | Align to Columns
  • 代码折叠

    • 折叠/展开当前代码段:

      Ctrl + -/+
    • 折叠/展开全部代码:

      Ctrl+Shift + -/+
    • 折叠全部文档注释:Code | Folding | Collapse doc comments
    • 展开全部文档注释:Code | Folding | Expand doc comments



4. 移动

  • 代码语句上/下移动:

    Ctrl+Shift + Up/Bottom

    ,可以简单移动方法的位置
  • 代码行上/下移动:

    Alt+Shift + Up/Bottom



5. 片段



快捷键与编辑器

配置中说到了如何配置代码片段,代码片段可以明显地提高编辑代码的速度,由其插入高频代码。


智能片段

:可以直接输入,也可以使用

Ctrl+J

来选择

在这里插入图片描述


包围片段

:可以选中一段代码使用

Ctrl+Alt+J

插入,也可以使用

Ctrl+Alt+T


在这里插入图片描述



6. 纠错

  • 在代码中存在红色波浪线的代码都是有问题的代码
  • 右侧滚动条上方图标不为

    绿色的对钩

    时表示该文件中存在有问题的代码
  • 可以点击滚动条的彩色条来定位有问题的代码
  • 也可以使用

    F2



    Shift+F2

    来快速定位有问题的代码
  • 滚动条的彩色条颜色决定着问题的严重性,例:

    警告



    错误

  • 光标置于错误代码的时候,左侧会出现电灯泡,单击它有解决办法
  • 使用快捷键

    Alt+Enter

    和单击电灯泡的功能一样

不管代码有什么问题,使用

Alt+Enter

总能找到解决办法。



不要轻易关闭代码的错误提示,级别较低的警告可以酌情处理

网上有许多坑人的教程,解决报红的错误的办法就是把错误提示关掉,万不可取。


技巧

  • 在接口名称

    AE

    选择 Implement interface 快速添加接口的实现类。
  • 在抽象类名称

    AE

    选择 Implement abstract class 快速添加抽象类的实现类。
  • 在类名称

    AE

    选择 Create subclass 快速添加该类的子类。
  • 在接口、抽象类、类名称

    AE

    选择 Create Test 快速添加类的测试类。
  • 在方法名称

    AE

    选择 Generate missed test methods 创建测试方法。
  • 在方法名称

    AE

    选择 Generate overloaded method with default parameter values 创建当前方法的重载方法。
  • 在属性、方法、类名称

    AE

    选择 Add Javadoc 快速添加文档注释。
  • 在正则表达式字符串

    AE

    选择 Check RegExp 校验正则表达式。


AE

表示使用

Alt+Enter

快捷键

  • 在光标拖动选择的时候按住

    Alt

    键可以垂直选择进行多行编辑。
  • 按住

    Alt+Shift

    键使用光标单击可以进行多个位置编辑。
  • 在使用

    Ctrl+F

    的时候,想要编辑所有的结果可以使用

    Ctrl+Alt+Shift+J



六、分析

分析项目,分析代码,才能分析设计。



1. 代码

  • 检查代码:Analyze | Inspect Code
  • 检查代码并修复:Analyze | Code Cleanup



2. 依赖

  • 分析依赖信息:Analyze | Analyze Dependencies
  • 分析被依赖信息:Analyze | Analyze Backward Dependencies
  • 分析Module依赖信息:Analyze | Analyze Module Dependencies
  • 分析依赖矩阵:Analyze | Analyze Dependency Matrix



3. 数据

  • 分析传递到当前的数据流:Analyze | Analyze Data Flow to Here
  • 分析从当前开始传递的数据流:Analyze | Analyze Data Flow from Here
  • 分析异常堆栈信息:Analyze | Analyze Stack Trace


技巧

  • 分析数据流可以追踪方法调用关系。

    在这里插入图片描述
  • 可以使用分析异常堆栈信息来处理异常日志。

    在这里插入图片描述



七、重构

珍惜每一次重构的机会,尽量把项目设计的更好。



1. 重构

  • 重构当前代码:

    Ctrl+Alt+Shift+T
  • 重命名:

    Shift+F6
  • 修改类或方法签名:

    Ctrl+F6
  • 修改定义类型:

    Ctrl+Shift+F6
  • 修改成静态定义:Refactor | Make Static
  • 修改成实例方法:Refactor | Convert To Instance Method
  • 移动/复制:

    F6/F5

    (可以移动静态变量或方法)
  • 安全删除:

    Alt+Delete
  • 提取方法生成代理类:Refactor | Extract | Delegate
  • 提取方法生成接口:Refactor | Extract | Interface
  • 提取方法生成父类:Refactor | Extract | Superclass



2. 优化

  • 对当前表达式提取并封装:Refactor | Extract

    • 提取为变量:

      Ctrl+Alt+V
    • 提取为常量:

      Ctrl+Alt+C
    • 提取为类属性:

      Ctrl+Alt+F
    • 提取为方法参数:

      Ctrl+Alt+P
    • 提取为函数式参数:

      Ctrl+Alt+Shift+P
    • 提取为函数式变量:Refactor | Extract | Functional Variable
    • 提取方法的多个参数封装为对象:Refactor | Extract | Parameter Object
    • 提取为方法:

      Ctrl+Alt+M
    • 提取为方法并封装成对象:Refactor | Extract | Method Object
  • 对当前表达式去除封装:Refactor | Inline
  • 查找并封装重复代码:Refactor | Find and Replace Code Duplicates
  • 倒置布尔类型:Refactor | Invert Boolean
  • 去除中介调用:Refactor | Remove Middleman
  • 包装方法返回结果:Refactor | Wrap Method Return Value
  • 使用方法概括属性:Refactor | Encapsulate Fields
  • 变量的初始化提取为方法:Refactor | Replace Temp with Query
  • 使用工厂方法替换构造方法:Refactor | Replace Constructor with Factory Method
  • 使用构建器替换构造方法:Refactor | Replace Constructor with Builder
  • 使用安全的类型填充泛型:Refactor | Generify



3. 继承

  • 将类成员推送到父类:Refactor | Pull Members Up
  • 将类成员拉取到子类:Refactor | Push Members Dowm
  • 使用接口替换类定义:Refactor | Use Interface Where Possible
  • 使用代理来替换继承:Refactor | Replace Inheritance with Delegation
  • 匿名类替换成内部类:Refactor | Convert Anonymous to Inner


技巧

  • 在Controller方法中,使用 Refactor | Extract | Parameter Object 把多个接收表单的参数封装成VO类。

    在这里插入图片描述

灵活运用好重构技能,编码速度可以提高几个档。



八、构建

蛋变成鸡的一步,怎样处理好一个蛋,一窝蛋?



1. 构建

  • 构建项目:Build | Build Project (

    Ctrl+F9

  • 重新构建项目:Build | Rebuild Project (

    Ctrl+Shift+F9

  • 构建Module:Build | Build Module



2. 运行

在菜单 Run 下面会有相关运行的操作,可以在 Run | Edit Configurations 中管理配置各种运行方式。

  • 运行/调试:

    Shift + F10/F9
  • 运行/调试列表:

    Alt+Shift + F10/F9
  • 停止/重启:

    Ctrl + F2/F5



2.1 Main

如果代码中存在Main方法,并以Main方法形式启动,打开Main方法所有类,除了使用

Alt+F10



Alt+Shift+F10

启动之外,也可以单击类名或方法名所在的运行Gutter图标。

如果想要全屏或者分屏显示运行日志,可以把运行工具窗口的 View Mode 设置成 Window 模式。



2.2 Tomcat

如果Web项目要使用Tomcat启动,则先要配置Tomcat Server运行方式,在 Run | Edit Configurations 添加该运行方式,在添加列表中选择 Tomcat Server | Local,配置好后即可运行。

在配置之前需要在本地下载Tomcat,在 Edit Configurations 配置中可以不仅可以添加运行方式,还可以对每个运行方式进行其他配置,比如:VM Options 等。



3. 调试

使用Debug启动可以快速定位问题,打断点步进调试是每个开发人员必备的技能,这里不多说,常用快捷键:

  • 每行执行:

    F8
  • 进入方法:

    F7
  • 跳出方法:

    Shift+F8
  • 执行到下一个断点:

    F9
  • 跳转到当前执行的断点位置:

    Alt+F10
  • 计算表达式:

    Alt+F8


技巧

  • 在断点停止的时候可以使用计算表达式来调试断点前的数据。

    在这里插入图片描述
  • 不小心跳过了自己想要调试的断点,可以使用 Drop Frame 来删除当前栈帧,来重新执行方法。

    在这里插入图片描述
  • 在栈帧窗口(Frames)右击,可以使用 Force Return 来强制返回当前方法,或使用 Throw Exception 来抛出异常。



九、工具

IDEA不仅仅只是一个写代码的软件,还拥有开发过程中经常使用的工具。



1. 数据库



视图工具栏

View | Tool Windows | Database 中可以找到Database工具,点击Toolbar上的加号可以添加数据源,配置好服务器和驱动后就可以使用了,打开 Console 输入SQL,使用

Ctrl+Enter

执行。

在这里插入图片描述



2. 服务器管理



工具栏

Tools | Deployment | Browse Remote Host 菜单打开Remote Host工具,点击



配置服务器,配置好了之后就可以操作 Remote Host 的文件树了。

在这里插入图片描述



3. HTTP客户端

在任何目录下都可以右击新建文件的时候创建

New HTTP Request

文件来编写HTTP报文来请求和测试HTTP接口,推荐在

test

目录下创建。创建测试文件如下:

GET http://localhost:80/api/item?id=99
Accept: application/json

点击每个请求报文左侧的运行Gutter图标就可以发送请求,同样创建POST请求:

POST http://localhost:80/api/item?id=99
Content-Type: application/x-www-form-urlencoded

id=1&name=2&gender=1&mobile=1413131212

可以在请求报文中使用环境变量,使用

{

{var}}

来引用变量,变量可以在配置文件(

http-client.env.json



rest-client.env.json

)中定义:

{
  "local": {
    "host": "http://localhost:8080",
    "x_token": "token"
  },
  "test": {
    "host": "http://10.250.1.122:8087",
    "x_token": "token"
  }
}

在运行的时候选择不同的环境使用不同的变量:

POST {{host}}/api/item
Content-Type: application/json

{
  "name": "ajn",
  "age": 24
}

变量也可以在响应脚本中使用

client.global.set

设置和使用

client.global.get

获取。

可以使用响应脚本来测试HTTP请求,脚本使用Javascript语言编写:

GET https://httpbin.org/status/404
Accept: application/json

> {%
client.test("Request executed successfully", function() {
  client.assert(response.status === 200, "Response status is not 200");
});
%}

响应脚本API详解:


  • client

    :客户端对象


    • global

      :全局变量属性


      • set(string, object)

        :设置变量

      • get(string)

        :获取变量

      • isEmpty()

        :判断全局变量是否为空

      • clear(string)

        :清除某个变量

      • clearAll()

        :清除所有变量

    • test(string, function)

      :测试函数

    • assert(boolean, string)

      :断言函数

    • log(string)

      :输出日志函数

  • response

    :响应对象


    • body

      :响应体

    • headers

      :响应头

    • status

      :响应状态码

    • contentType

      :响应的ContentType头



4. SSH会话



工具栏

Tool | Start SSH session 菜单可以新建SSH会话,在前面

服务器管理

中如果创建了服务器,会自动添加该服务器的SSH会话。

在这里插入图片描述



十、插件

强大的功能,还远远不够,一个合格的软件,都应支持功能自由地扩展。



1. Lombok

Lombok插件支持代码中使用Lombok注解编译生成Get和Set等方法,该插件不仅支持注解,它在菜单中添加了两个功能:

  • Refactor | Lombok:插入Lombok注解
  • Refactor | Delombok:将Lombok注解生成代码

更多设置:File | Settings | Other Settings | Lombok plugin



2. Alibaba Java Coding Guidelines

该插件是结合阿里巴巴Java开发规约而出的,主要功能用于检测代码是否条例阿里开发规范,它结合了IDEA的纠错功能可以快速定位问题和修复问题,在菜单中添加的功能有:

  • Tool | 阿里编码规约

阿里规约插件提示的问题也可以使用

Alt+Enter

来寻找解决办法。


技巧

  • 根据阿里规约,快速分析代码并一键修复。

    在这里插入图片描述



3. CamelCase

CamelCase添加一个快捷键

Alt+Shift+U

来修改标识符的下划线、小驼峰、大驼峰等格式,并支持批量转换。

在这里插入图片描述

按住

Alt+Shift

使用鼠标单击可以选择多选编辑。



4. Easy Code

Easy Code插件可以根据数据库表和模板来生成代码,可以解决编写重复底层代码的问题。添加的设置项有:

  • 配置编码和作者名称:Other Settings | Easy Code
  • 配置类型映射:Other Settings | Easy Code | Type Mapper
  • 配置模板:Other Settings | Easy Code | Template Setting
  • 配置全局模板:Other Settings | Easy Code | Global Config

只需在 Database 工具栏选中一个或多个表,右击 EasyCode | Generate Code 就可以生成代码,针对单表配置类型映射可以右击 EasyCode | Config Table 来配置。

在这里插入图片描述



5. GenerateAllSetter

该插件可以一键调用对象的所有Setter方法,在新建对象实例后使用

Alt+Enter

弹出面板中菜单:

  • 创建似有Setter不带默认值:Generate all setter no default value
  • 创建似有Setter带默认值:Generate all setter with default value

    在这里插入图片描述



6. Maven Helper

该插件用于Maven管理,可以分析Maven依赖结构和执行Maven生命周期,添加快捷键

Ctrl+Alt+R

来运行Maven生命周期,可以在 File | Settings | Other Settings | Maven Helper 中进行设置,另外一个功能就是在

pom.xml

文件下方添加了一个Dependency Analyzer标签,可以用来分析Maven依赖,可以查看和解决Maven依赖冲突。

在这里插入图片描述



7. MyBatisX

MyBatisX插件主要增强了IDEA对MyBatis框架的支持,可以在 File | Settings | Other Settings | Mybatis 进行设置,它添加的功能有:

  • 检验Mapper层的代码逻辑
  • 添加Mapper层接口与XML文件跳转功能的Gutter图标
  • 快速根据接口生成XML标签
  • 接口参数生成

    @Param

    注解

    在这里插入图片描述



8. RestfulToolkit

该插件是管理Restful接口的工具集,它提供的功能有:

  • 使用快捷键

    Ctrl+\

    来根据URL来跳转到方法定义
  • 提供了一个接口的树形窗口
  • 提供了一个简单的HTTP请求工具
  • 在请求方法上生成特殊字符串并复制的功能

    • 复制K-V形式的QueryString:Generate & Copy Query Param (Key value)
    • 复制JSON形式的请求体:Generate & Copy RequestBody (JSON)
    • 复制相对路径URL:Generate & Copy Relation URL
    • 复制全路径URL:Generate & Copy Full URL
  • 在Java类上生成JSON并复制的功能

    • 复制压缩格式的JSON:Convert to JSON(Compressed)
    • 复制JSON:Convert to JSON

      在这里插入图片描述


参考文献

  1. IDEA快捷键手册:Help | Keymap Reference
  2. IDEA 2019.1 官方文档:

    https://www.jetbrains.com/help/idea/2019.1/



版权声明:本文为weixin_43793874原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。