![Spring Boot趣味实战课](https://wfqqreader-1252317822.image.myqcloud.com/cover/509/44819509/b_44819509.jpg)
2.3 打造一件趁手的兵器
一件趁手的兵器有多重要?这个问题问问孙悟空就知道了,他当初为了寻找一件趁手的兵器差点把东海龙宫给掀了。金箍棒之于孙悟空,就好比一款好用的IDE之于程序员。
IDE无疑是程序员披荆斩棘、驰骋沙场必不可少的工具。因此,一款好用的IDE对于程序员来说意义非凡,它可以让程序员提升编码效率。你要问我谁是最佳IDE,对于微软系编程语言来说,必然是Visual Studio,而对于JVM系编程语言来说,Intellij IDEA不出,谁与争锋?口说无凭,我们来看具体数据。图2-2展示了来自《2020 JVM生态报告》的数据。
![](https://epubservercos.yuewen.com/97C3EF/23950113201172406/epubprivate/OEBPS/Images/43216_27_1.jpg?sign=1738931147-wj5FJuEPEIprXF4axxo8Z1pdQpfWhSrS-0-8988b031f457259fd05cbf773c5df861)
图2-2 IDE市场份额
Intellij IDEA的市场份额(JVM生态)处于绝对领先的地位,比其他IDE的市场份额总和还多。光说数据也没什么意思,毕竟一个工具好不好,只有用起来才知道。下面我们就来看看Intellij IDEA究竟有什么本事,可以占据如此“傲视群雄”的市场份额。
2.3.1 设置
Intellij IDEA的默认设置非常友好,实现开箱即用完全没问题。但是它仍然提供了非常高的定制自由度,以便每个人都可以根据自己的习惯调节出更适合自己的IDE。下面分享一些我个人常用的设置,仅供参考,选择File→Settings菜单命令(或者按Ctrl+Alt+S快捷键),打开Settings面板。
设置主题与字体
选择Appearance&Behavior→Appearance选项(见图2-3)。
![](https://epubservercos.yuewen.com/97C3EF/23950113201172406/epubprivate/OEBPS/Images/43216_28_1.jpg?sign=1738931147-dTix1GMtRzxNdGnU0a6SJ5tH2kBXkR82-0-ed5e63b3714c22bf573b8b4857a7462b)
图2-3 设置主题与字体
在此面板中可以根据自己的喜好选择亮色、暗色或者高对比度的主题,以及字体和字号。
设置编辑区字体
选择Editor→Font选项(见图2-4)。
![](https://epubservercos.yuewen.com/97C3EF/23950113201172406/epubprivate/OEBPS/Images/43216_28_2.jpg?sign=1738931147-T73eKrElnoyinFcI01HcpBeG7zByQmFK-0-421a7958c14b6cc8684749e637183326)
图2-4 设置编辑区字体
在此强烈推荐一下JetBrains的Mono字体,这是专为编程开发的一款等宽字体(开源的),支持多种主流编程语言。想了解更多相关信息的读者,可以去JetBrains官网查看。
对于老眼昏花的我来说,调大字号是必不可少的操作。
显示行号与方法分隔符
选择Editor→General→Appearance选项(见图2-5)。
![](https://epubservercos.yuewen.com/97C3EF/23950113201172406/epubprivate/OEBPS/Images/43216_29_1.jpg?sign=1738931147-MjWGyf3CNybk0lLdBzah3AVgVPzcHqE7-0-a4df7ed8a5a902f342ec6ebaf3ed6357)
图2-5 显示行号与方法分隔符
显示行号,这样在执行Debug操作的时候会很方便;显示方法分隔符,这样在阅读代码的时候会更清晰,效果如图2-6所示。
![](https://epubservercos.yuewen.com/97C3EF/23950113201172406/epubprivate/OEBPS/Images/43216_29_2.jpg?sign=1738931147-fMpwFvBtVvwHlSTtejwsI3rkkvbfyUPa-0-c5cbcdc1b045c16f86f2b6d98c062a59)
图2-6 显示行号与方法分隔符的效果
设置Editor Tabs布局
选择Editor→General→Editor Tabs选项(见图2-7)。
![](https://epubservercos.yuewen.com/97C3EF/23950113201172406/epubprivate/OEBPS/Images/43216_30_1.jpg?sign=1738931147-whP3FxMc0k9kn9x2sDTQseS45EIhIOcH-0-de41ad9f71a7a300386f63837aff114c)
图2-7 设置Editor Tabs布局
我比较喜欢将代码的Tab放到左侧,配合带鱼屏显示器,使用体验非常棒!另外,还可以让Tab按照字母顺序排列,这样找起来会很方便。Editor Tabs设置效果如图2-8所示。
![](https://epubservercos.yuewen.com/97C3EF/23950113201172406/epubprivate/OEBPS/Images/43216_30_2.jpg?sign=1738931147-if6ZznrVOvmv5CHDJ6V97H66IrlxEr1e-0-b0a15bb3e147afa39ddd70ab1faa5bfd)
图2-8 Editor Tabs设置效果
高亮显示修改目录
选择Version Control选项(见图2-9)。
![](https://epubservercos.yuewen.com/97C3EF/23950113201172406/epubprivate/OEBPS/Images/43216_31_1.jpg?sign=1738931147-JX37ePF47kfjdeReyPNpg1psBO29uMWD-0-141de02f2bc6fd22b1b21a835f1aa6e1)
图2-9 高亮显示修改目录
勾选Show directories with changed descendants复选框后,当项目有改动时,对应的目录会高亮显示,且在亮色主题下会默认变成浅蓝色,非常直观。
这一功能需要集成版本管理工具(如Git或SVN等)后才能生效。
自动导入
选择Editor→Auto Import选项(见图2-10)。
![](https://epubservercos.yuewen.com/97C3EF/23950113201172406/epubprivate/OEBPS/Images/43216_31_2.jpg?sign=1738931147-XyIbbNbJakmyFMjeR4gJcbfHyo8yfNqV-0-0302812a47f28b6d66270172d71e3a5f)
图2-10 自动导入
勾选Add unambiguous imports on the fly和Optimize imports on the fly两个复选框,当没有二义性时,会自动导入包引用。当包引用不再被使用时,会自动移除。
设置Maven的Reload操作
选择Build,Execution,Deployment→Build Tools选项(见图2-11)。
![](https://epubservercos.yuewen.com/97C3EF/23950113201172406/epubprivate/OEBPS/Images/43216_32_1.jpg?sign=1738931147-sUX24PnLC8HNOWOoojNsci9brauiow6t-0-2b42a6096c22a9d70a74f154f5d4ad2c)
图2-11 设置Maven的Reload操作
勾选Reload project after changes in the build scripts复选框后,当pom文件有更改时,会自动触发Maven的Reload操作,非常方便。
Intellij IDEA在某几个版本中去掉了这个功能,结果导致社区中一片抱怨声,所以在后续的版本中又恢复了这个功能。
自定义工具栏
选择Appearance&Behavior→Menus and Toolbars选项(见图2-12)。
![](https://epubservercos.yuewen.com/97C3EF/23950113201172406/epubprivate/OEBPS/Images/43216_32_2.jpg?sign=1738931147-ttEP6Ebm9HwC1P3M8Spkr6wAHo7NwcN0-0-857a12cb81b5c499de55c4055954eb33)
图2-12 自定义工具栏
将比较常用的操作添加到工具栏中,可以提升便利性,例如,图2-12中选择了Forward选项,那么新增操作的相应按钮会被添加到Forward操作相应的按钮后面。
这里将新建Java Class的操作添加进来,如图2-13所示,依次展开Main menu→File→New选项,找到Java Class并单击OK按钮。
![](https://epubservercos.yuewen.com/97C3EF/23950113201172406/epubprivate/OEBPS/Images/43216_33_1.jpg?sign=1738931147-ueo85PkNkKXi6DvoGsiMwGIlsHCTVJ2q-0-2d0eba70417abd6d045afc83992ad5bd)
图2-13 添加新建Java Class的操作
完成后的效果如图2-14所示。当我们需要新建Java Class的时候,单击箭头所指的按钮即可。
![](https://epubservercos.yuewen.com/97C3EF/23950113201172406/epubprivate/OEBPS/Images/43216_33_2.jpg?sign=1738931147-FBLvSxbCodcgHddz2SSZaDwcDtrqsmUd-0-fb38aed307a2ba2d35ca73d7f75f8fc5)
图2-14 自定义工具栏效果
2.3.2 技巧
说完Intellij IDEA的设置部分,接下来继续分享一些比较好用的使用技巧,这些技巧可以在很大程度上提升我们的编程效率。
历史剪切板
快捷键:Ctrl+Shift+V。
历史剪切板如图2-15所示。作为一个程序员,我们在日常工作中肯定少不了进行复制、粘贴操作。(嗯?谁在“黑”我们程序员?)这个功能可以极大地提升效率。
![](https://epubservercos.yuewen.com/97C3EF/23950113201172406/epubprivate/OEBPS/Images/43216_34_1.jpg?sign=1738931147-0mqldUNyDEiK8sRJlzQ6fTXHvm9fSqiF-0-d4825cb23431ba87d6b06736a770c4f2)
图2-15 历史剪切板
最近查看/修改过的文件
快捷键:Ctrl+E。
如图2-16所示,这个功能用于需要在多个文件之间来回切换的场景,如阅读代码或者调试代码的时候,使用这个功能可以让Debug操作更加行云流水。
![](https://epubservercos.yuewen.com/97C3EF/23950113201172406/epubprivate/OEBPS/Images/43216_34_2.jpg?sign=1738931147-8HRaegFojQA77rl15MSECEclYYLIm59V-0-8de2e9a9f8f997f5b327efa8c80c6b2c)
图2-16 最近查看过的文件视图
在图2-16所示的情况下,再次按Ctrl+E快捷键可以切换到最近修改过的文件视图中。
全局查找/替换
快捷键:Ctrl+Shift+F/R。
如图2-17所示,可以调出全局查找/替换对话框,按项目、模块、目录及自定义范围进行查找或替换。这个功能非常适合查看某个关键字出现的位置,或者统一替换某个关键字等情况。
![](https://epubservercos.yuewen.com/97C3EF/23950113201172406/epubprivate/OEBPS/Images/43216_35_1.jpg?sign=1738931147-ea4MKbu8XSl9YsRihuxOLqTOqw2h8D5W-0-6336bf6c4b53857c5eed355f510b68b4)
图2-17 全局查找/替换对话框
随心搜
快捷键:双击Shift键。
正如它的名字——随心搜,你可以随时随地(在Intellij IDEA的任何界面)发起搜索,如图2-18所示。
![](https://epubservercos.yuewen.com/97C3EF/23950113201172406/epubprivate/OEBPS/Images/43216_35_2.jpg?sign=1738931147-52Bc51zldile4VJOxVhEm5DJ7TVcJEkD-0-7e0313433fe500348046f69fb869b1d6)
图2-18 随心搜
在图2-18所示的情况下,再次双击Shift键,就可以搜索项目以外(引用的第三方Jar包)的内容了。
Surround With
快捷键:Ctrl+Alt+T。
Surround With效果如图2-19所示。我们不需要对Surround With进行过多的介绍。它可以一键生成常用代码样板,只要用过它的都说好。
![](https://epubservercos.yuewen.com/97C3EF/23950113201172406/epubprivate/OEBPS/Images/43216_36_1.jpg?sign=1738931147-bfn8QSTfd3BPYk847o5Fd7KDySvHPu4U-0-555dcb3622f55a8d69ee5be383916160)
图2-19 Surround With效果
问题狙击手
这是一套“组合拳”,需要两步。
1.按F2键定位问题。
2.按Alt+Enter快捷键解决问题。
如图2-20所示,在代码编辑区内,如果文件内有错误(报红)或者警告(报黄),那么按F2键可以快速定位到问题的位置,然后按Alt+Enter快捷键就可以快速修复问题。
![](https://epubservercos.yuewen.com/97C3EF/23950113201172406/epubprivate/OEBPS/Images/43216_36_2.jpg?sign=1738931147-Rl4XU5xCCuIEYs5vR3mtJ3Vau5oMLkXh-0-4cd37bcd4dffe2f5a760de58ba9a5741)
图2-20 问题狙击手
花式Debug
Debug是程序员的日常操作。如果程序员掌握了一些技巧,就可以快速定位与解决问题。Intellij IDEA的调试功能很丰富,下面介绍条件断点让大家感受一下。
在一般情况下,普通断点可以满足我们的需要,但是如果你需要调试一个循环中的代码,并且这个循环数很大,例如:
![](https://epubservercos.yuewen.com/97C3EF/23950113201172406/epubprivate/OEBPS/Images/43216_37_1.jpg?sign=1738931147-pVyK1jb4pOkTvAHO0kHc7JTw2FMvZQjs-0-a8a66e227ea4cb135ae8e6b3caf5f265)
当需要调试value值为50时,我们肯定不能一遍一遍地进行“傻瓜式”的调试,这时候就需要用到条件断点了。其用法很简单,只需要在普通断点上面右击一下,就会弹出条件输入框,然后输入value==50即可,如图2-21所示。
![](https://epubservercos.yuewen.com/97C3EF/23950113201172406/epubprivate/OEBPS/Images/43216_37_2.jpg?sign=1738931147-5lNkZseCvVtWYjyFZTzyjguVF2kIpoay-0-6e6210868db5865d32435fd4c40b7b24)
图2-21 使用条件断点
这样,当value值为50的时候,断点才会生效,非常好用。
其他功能,如运行到光标处、执行到指定行号、执行表达式等需要自己多尝试一下。表2-1展示了Debug相关的快捷键及其功能描述。
表2-1 Debug相关的快捷键及其功能描述
![](https://epubservercos.yuewen.com/97C3EF/23950113201172406/epubprivate/OEBPS/Images/43216_37_3.jpg?sign=1738931147-HimfySjSbn8mDuHVkG4FsFKd3Kmxxjbq-0-6c12979455a2baca0f17c5701bc6ab51)
续表
![](https://epubservercos.yuewen.com/97C3EF/23950113201172406/epubprivate/OEBPS/Images/43216_38_1.jpg?sign=1738931147-DD7vrFuvPOXjK8jmpWf8G2w6qECeqUgu-0-53bfa6813414ae9fd67c6a260a2e709b)
自动写代码
我们经常开玩笑地说:“支付宝,你已经是一个成熟的软件了,应该学会自己还花呗了!”但是我们只能想象一下,想让支付宝自己还花呗是不可能的,阿里巴巴公司也不会答应。不过,Intellij IDEA就不一样了,它不仅是一个成熟的IDE,还慢慢学会了自己写代码。
Intellij IDEA有两个功能用于实现自动写代码——Live Template和PostFix。
先介绍Live Template,比如,我们输入psvm后按Tab键,Intellij IDEA就会自动生成main方法,如图2-22所示。
![](https://epubservercos.yuewen.com/97C3EF/23950113201172406/epubprivate/OEBPS/Images/43216_38_2.jpg?sign=1738931147-cYElkzqT2TgOsvKM733gwFRWX8ES3ziL-0-4a892c5f43c6f30b65d8516d6345c7d7)
图2-22 自动生成main方法
再如,我们输入sout后按Tab键,Intellij IDEA就会自动生成打印语句,如图2-23所示。
![](https://epubservercos.yuewen.com/97C3EF/23950113201172406/epubprivate/OEBPS/Images/43216_38_3.jpg?sign=1738931147-VceEJFBo38ibGrto2TBJu16362fIfwI5-0-d2e6033b0d2d4c5fcbdeb271d1e88699)
图2-23 自动生成打印语句
接下来介绍PostFix,比如,我们想迭代一个名称为list的列表对象,输入list.for后按Tab键,Intellij IDEA就会自动生成列表的迭代代码,如图2-24所示。
![](https://epubservercos.yuewen.com/97C3EF/23950113201172406/epubprivate/OEBPS/Images/43216_38_4.jpg?sign=1738931147-rDV4HfgnAU9LIay3EjYpB1nlXlIRZut5-0-6e6f19dc9b53248c79ab881971761d7b)
图2-24 自动生成列表的迭代代码
Intellij IDEA中内置了很多常用的Live Template和PostFix。我们可以到设置面板中查看它们,查看路径分别是Settings→Editor→Live Template和Settings→Editor→General→PostFix Completion。当然,你也可以根据自己的喜好创建自定义的Live Template和PostFix。
重构
Intellij IDEA的重构功能也很强大,下面简单展示一下变量重命名。首先将光标定位到需要重命名的变量处,然后按Shift+F6快捷键,那么所有该变量出现的地方都会被高亮显示,如图2-25所示。
![](https://epubservercos.yuewen.com/97C3EF/23950113201172406/epubprivate/OEBPS/Images/43216_39_1.jpg?sign=1738931147-PF4mG5ExCpQprT1mL7lfVcEbSygkyu2d-0-03cae49035aa088342640120b295e15a)
图2-25 重命名
这时候,我们将该变量修改成想要的名称,然后按Enter键,这个变量的名称就会全部变成新的名称。Intellij IDEA还有很多更强大的重构功能,最常用的重构快捷键如下。
· Shift+F6:重命名
· Ctrl+Alt+V:抽取变量
· Ctrl+Alt+F:抽取字段
· Ctrl+Alt+P:抽取参数
· Ctrl+Alt+C:抽取常量
· Ctrl+Alt+M:抽取方法
此处就不一一讲解重构功能了。在实际使用中细细体会,你会爱上重构功能的。
2.3.3 插件
虽然Intellij IDEA的功能已经非常强大了,但是仍然具有开放的特性,支持通过第三方插件的方式来增强它的功能。下面简单列举一下我必须安装的插件。
Alibaba Java Coding Guidelines
按照《阿里巴巴Java开发手册》中的编码规范检查代码并给出修改建议。
Codota
Intellij IDEA的自动补全功能已经很强大了,用了Codota会更强大。
Lombok
可以省去烦人的Getter/Setter,当然功能远不止于此。
Maven Helper
Maven的好帮手,解决依赖冲突的“利器”。
MyBatis Log Plugin
可以打印出可执行的(自动将“?”替换成具体的参数)SQL语句,非常好用。
MyBatisX
可以直接通过Java代码跳转到MyBatis的Mapper.xml中对应的SQL语句,也可以使用Free MyBatis Plugin。
Rainbow Brackets
让括号拥有不同的颜色。