一、概述
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
:
- 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框架的开发人员来说,非常方便。
技巧
-
在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
(可以查看当前类文件类定义信息)
技巧
-
使用
Ctrl+Shift+I
快速查看当前枚举、常量的信息 -
调用方法的时候使用
Ctrl+P
查看当前参数输入情况,由其是重载方法的情况 -
使用
Ctrl+Shift+P
快速修改某段代码
3. 文件
在文件视图中,可以导航最近修改的文件或位置。
-
查看最近修改的文件:
Ctrl+E
-
查看最近修改的位置:
Ctrl+Shift+E
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
参考文献
- IDEA快捷键手册:Help | Keymap Reference
-
IDEA 2019.1 官方文档:
https://www.jetbrains.com/help/idea/2019.1/