💗14.代码模板(代码快捷键)
例如 : eclipse 中的syso是打印控制台输出 ,但是idea默认是sout , 如果非要改成syso 可以在Postfix Completion里面设置,类似的 fori等都是在里面设置
💗15.自动导包、自动移除没用的包
15.1 手动导包 :alt+enter 手动移除未使用包: crtl+alt+o
💗16.codota插件:可以优先显示使用频率较高的类、方法
这个根据个人是否要使用 有的时候工具只能作参考,自己记忆才能保证准确
💓17.快速查看类、字段的注释
这是一个很有用的小技巧 按F2可以快速查看某个类或某个字段的文档注释 ;基于这点 其它IDE应该也是可以快速查看文档注释内容 不仅仅是idea特性,这也是为什么阿里编码规范里面会明确声明实体类字段需要用文档注释 而不能使用双斜杠// 注释 ,还记得刚看到这个规范的时候 很不理解 特地去百度 看到有人说就是个习惯问题 很显然不能说服人,直到发现F2可以快速查看之后 恍然大悟!
💓18.括号颜色区分
Rainbow Brackets 插件 成对的括号用相同的颜色表示出来了
💓19.微服务项目中将不同项目添加到同一个启动窗口
步骤:View ——>Tool Windows ——> services ——>add services
💓20.idea全局设置(打开新窗口设置)
例如我们打开新窗口时,maven配置会恢复 这时就需要对打开新窗口的设置进行修改 达到一个全局的目的。
在低版本idea中 也是在File下 例如idea2018是叫other settings
💓21.java mapper层代码文件和mapper.xml文件相互跳转
Free MyBatis plugin
插件
点击绿色箭头可以直接跳转 非常方便
💓22.设置idea背景图片
BackgroundImage插件
设置喜欢的图片作为背景图
💓23.maven tree(查看maven jar包依赖关系)
如果是使用 mvn dependency:tree 命令 , 结果是下图这样 很不方便查看
我们可以在idea右上角点击这个ShowDependencies按钮 以图片形式展示出来 图片按住ctrl和鼠标滑轮 可以放大,这个在排除依赖冲突 查看jar包来源时 非常好用
有的时候 可能莫名其妙看不到这个图标 ,我们可以点一下设置
把这个勾上,它就能显示了,等显示后,再把这个勾去掉
💕24.快捷键切换回上一个点开的tab
当我们打开了多个tab的时候 , 想要快速回到上一个点击的tab中 有的时候肉眼很难找
我们可以用快捷键 alt + ←
键 (eclipse版快捷键 idea默认快捷键需要自测) ,有的时候我们在后面tab编辑了内容 按一次可能不够 需要再多按几次 ,相应的 alt + →
切换到下一个点击的tab
常见应用场景:debug发生类跳转时 、利用快捷键在其它类中创建方法时 即使两个tab不相邻 也可以切换回去
💕25.idea自带的ssh连接工具
类似的idea还有自带的数据库连接工具 但是视图界面并不如Navicat 所以很多人都不选择用
第一步:配置账号密码
第二步:开启ssh会话
💕26.代码调用链路图插件
SequenceDiagram 插件
这其实是本文第13点的上位替代方案,idea自带的快捷键查看代码调用,只是以菜单形式展示,不太直观,如果是自己写的代码或比较规范的代码,那用自带的也就无所谓,如果是比较复杂的源码或不规范的代码,那使用 SequenceDiagram
会直观特别多。
在要查看的java文件鼠标右键,点击 Sequence Diagram
效果示例:
💕27.获取当前线程dump
在断点调试的时候,我们可以通过点击下图红色箭头指向的相机图标,获取当前线程的dump信息。
这个功能有什么用呢?我们可以通过线程名,分析当前是哪个线程执行的,在多线程环境下对代码运行分析起到辅助作用。
比如下图1, run()方法是通过main主线程执行的,只是方法调用,并没有启动多线程(这是我们熟知结论的实践证明)
当我们把run方法改成start()方法时,可以看到是线程thread0执行的。
💖28.idea同个项目不同端口多开
这是个非常实用的功能,可以模拟集群 测试负载均衡。
此外 在开发阶段也是非常好用,开发过程中,让别人直接连自己本地测试 是不是非常方便?
那自己又想打断点调试 会影响别人 怎么办呢 ?这个时候多开的作用就体现出来了!
网上很多方法提到勾选 Allow parallel run (不同版本idea 名称不一样) ,我也亲眼见过有老师是可以多开启动的, 但我本地启动发现每次都会同时同端口启动多个,不知道是版本问题还是操作问题,这里我用的是另一种有效的方法:
在 VM options 加上
// 8993是区别于 application.yml 配置中 port 的另一个端口,达到不同端口多开的效果 -Dserver.port=8993