[IDEA使用指南GitHub](https://github.com/judasn/IntelliJ-IDEA-Tutorial)
[IDEA使用指南GitBook](https://cdk8s.gitbook.io/github/)
## 检查单独文件语法
工具栏Analyze的Inspect Code里面有你要的
## 设置检测级别 syntax
新版检测
![新版检测截图](./imgs/ce133dd97f6e4e69b5fc4e0e99c908db.bmp)
## 快捷键
![声明变量](./imgs/微信图片_20210822145947.gif)
![ null 判空](./imgs/微信图片_20210822150333.gif)
![notnull 判非空](./imgs/微信图片_20210822150342.gif)
![nn 判非空](./imgs/微信图片_20210822150352.gif)
![for 遍历](./imgs/微信图片_20210822150403.gif)
![fori 带索引的遍历](./imgs/微信图片_20210822150411.gif)
![not 取反](./imgs/微信图片_20210822150419.gif)
![ if 条件判断](./imgs/微信图片_20210822150427.gif)
![ cast 强转](./imgs/微信图片_20210822150437.gif)
![ return 返回值](./imgs/微信图片_20210822150444.gif)
Ctrl+P:根据方法名提示参数,会列出所有重载的方法参数
Shift+Ctrl + i:在弹出的小窗口显示方法的源码
Alt + F7:列出变量在哪些位置被使用
## Debug 多线程
IDEA除了可以对整个进程Debug外,还可以对每个线程进行Debug,这里需要将断点模式进行修改。
**设置Thread模式:Thread模式代表所有的线程运行到此处都会停止,而如果设置成All模式的话,则是当有一个线程运行到此处就所有线程都停止,其他的线程停在哪儿就不一定了。
操作方法:设置右键断点(红点),在弹框中勾选Suspend,并选择 Thread。
*在 Debugger 窗口中,在Frames下方下拉框中选择某线程后,就可以使用上方的调试按钮就是操作该线程了。*
## Git 修改跟踪远程分支
1. 修改本地分支名称并推送到远程分支(远程分支名称=本地分支名称)
2. checkout 远程分支
## 根据表结构生成实体类
**生成hibernate实体类:**
![image-20201102173024697](imgs/image-20201102173024697.png)
![image-20201102173338461](imgs/image-20201102173338461.png)
**添加关联关系:**
点击 Database Schema Mapping 下的加号+,添加关联关系
![image-20201102180425236](imgs/image-20201102180425236.png)
![image-20201102181201454](imgs/image-20201102181201454.png)
生成的实体类如下:
**Book**
![image-20201102181432591](imgs/image-20201102181432591.png)
**BookCatalog**
![image-20201102181546719](imgs/image-20201102181546719.png)
## Tomcat使用
参考:
[IntelliJ IDEA 的 Project Structure 窗口中的 Artifacts 勾选 Include in project build](https://blog.csdn.net/liaowenxiong/article/details/122136877)
[IDEA中Facets和Artifacts配置说明](https://blog.csdn.net/qq_38721734/article/details/110259125)
[idea中artifacts、facets、modules](https://zhuanlan.zhihu.com/p/365027697)
[IntelliJ IDEA 部署 Web 项目,终于搞懂了](https://segmentfault.com/a/1190000022563954)
[IntelliJ IDEA在应用服务器上更新应用](https://www.w3cschool.cn/intellij_idea_doc/intellij_idea_doc-q3uc2wy4.html)
传统SpringMvc项目目录和对应tomcat配置如下:
![[Pasted image 20240414101521.png]]
![[Pasted image 20240414095547.png]]
在日常开发过程中,我们修改完java代码后,接着就点击 Build 编译,然后就可以去验证代码了(前提是 On 'Update' Action 选择了 Update classes and resources)
但是修改JSP的时候遇到一个问题:**每次修改完JSP文件后,都必须重启tomcat才能使应用的页面生效**。仅仅点击Build(Build Project)是不能使JSP页面生效的。
原因是 Build 不是 'Update' Action,无法触发 Update classes and resoures 。
方法1:可以Ctrl + F10 或者点击 Update Tomcat Application 实现触发,这时会有弹框提示。
![[Pasted image 20240414120748.png]]
方法2:**如果要使JSP页面或者说是 webapp 目录下的修改生效,就需要点击 Build 下的 Build Artifact**。其实这步操作就是 Tomcat配置 Before launch 中的 Build 'favor-bill:war exploded' artifact,即重新构建war包,将classes和resources、webapp目录复制到 target 目录中。
方法3:另外还有一种方法将 Build Artifact 和 Build 合二为一。即在 Project Setting 的 Artifacts 勾选 Include in project build,意为在 Build 的时候构建artifact。
![[Pasted image 20240414111717.png]]
注:IDEA中web应用的配置都在 Project Structure。
还有一个问题,百思不得其解。当启动tomcat后,在 target 和 target/favor-bill-1.0-SNAPSHOT/WEB-INF 下各有1个classes文件夹。而当点击Build后,只会将修改的java文件重新编译到 target/classes 文件夹下,WEB-INF/classes里的class文件没变。这个时候修改的代码在web应用里竟然生效了。
那么IDEA中启动tomcat应用时,生效的是 target/classes 还是 target/favor-bill-1.0-SNAPSHOT/WEB-INF/classes呢???
## Java文件显示带J文件
Java文件图标变成下面这样,而且包也没有分层。
![](Pasted%20image%2020240425145925.png)
**解决方法:**
打开 “Project” 中的 “Project Structure”
![](Pasted%20image%2020240425145935.png)
点击删除后,重新 “Add Content Root” 。