一、快捷键
1.全局搜索 ctrl+shift+f (搜狗输入法的默认简繁体切换快捷键也是ctrl+shift+f,注意关闭)
2.搜索的定义 ctrl+n
3.查找方法在哪里调用.变量在哪里被使用 alt+f7 (对应 Edit->Find->Find Usages)
4.抽取变量 ctrl+alt+v
5.抽取方法 ctrl+alt+m
6.最近打开的文件 ctrl+e
7.类图的快捷键 Ctrl + Alt + Shift + U
二、常用设置
1.文件模板,新建xml模板文档和
2.
三、常用插件
1.Lombok
2.Free Mybatis plugin
3.docker-maven
(1)服务器搭建环境,首先安装Registry的Docker镜像,并安装容器,同时打开在docker的dockerHost。 vim /lib/systemd/system/docker.service ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock修改为ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H fd:// --containerd=/run/containerd/containerd.sock。
(2)修改Docker Daemon的配置文件,文件位置为/etc/docker/daemon.json
,由于Docker默认使用HTTPS推送镜像,而我们的镜像仓库没有支持,所以需要添加如下配置,改为使用HTTP推送;没有则新建;{
"insecure-registries": ["192.168.3.101:5000"]
}
(2)pom工程打包,多模块项目构建时,先将parent项目要先install一回,之后子项目才可以运行mvn compile命令,否则就会报如上异常。
四、调试骚操作
1.断点条件
循环中经常用到这个技巧,比如:遍历1个大List的过程中,想让断点停在某个特定值。参考上图,在断点的位置,右击断点旁边的小红点,会出来一个界面,在Condition这里填入断点条件即可,这样调试时,就会自动停在i=10的位置
2.回到"上一步"
该技巧最适合特别复杂的方法套方法的场景,好不容易跑起来,一不小心手一抖,断点过去了,想回过头看看刚才的变量值,如果不知道该技巧,只能再跑一遍。
参考上图,method1方法调用method2,当前断点的位置j=100,点击上图红色箭头位置的Drop Frame图标后,时间穿越了回到了method1刚开始调用的时候,变量i变成了99,没毛病吧,老铁们,是不是很6 :)注:好奇心是人类进步的阶梯,如果想知道为啥这个功能叫Drop Frame,而不是类似Back To Previous 之类的,可以去翻翻JVM的书,JVM内部以栈帧为单位保存线程的运行状态,drop frame即扔掉当前运行的栈帧,这样当前“指针”的位置,就自然到了上一帧的位置。
3.多线程调试
多线程同时运行时,谁先执行,谁后执行,完全是看CPU心情的,无法控制先后,运行时可能没什么问题,但是调试时就比较麻烦了,最明显的就是断点乱跳,一会儿停这个线程,一会儿停在另一个线程,比如下图:如果想希望下一个断点位置是第2句诗句,可能要失望了:如果想让线程在调试时,想按自己的愿意来,让它停在哪个线程就停在哪个线程,可以在图中3个断点的小红点上右击,即:Suspend挂起的条件是按每个线程来,而非All。把这3个断点都这么设置后,再来一发试试注意上图中的红框位置,断点停下来时,这个下拉框可以看到各个线程(注:给线程起个容易识别的名字是个好习惯!),我们可以选择线程“天空中的飞鸟”断点如愿停在了第2句诗。
4.IDEA开发SpringBoot或者Spring项目如何启动多个实例
之前在学习Spring Cloud Eureka时,是同时使用多个项目来作为服务提供者来测试Spring Cloud的负载均衡功能,最近通过学习发现,可以在IDEA中修改配置来实现此功能
主要是在IDEA的run configration中通过配置
此处的 allow parallel run 在老版本的IDEA中是single Instance Only,需要把这个选项取消。
那么针对我们这个项目如何使用呢,需要首先启动一个实例,然后修改对应的端口号之后仍然使用当前项目的启动类来启动,即可发现在IDEA控制台中会出现双实例的控制台