[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” 。 ## TODO 使用 通常我们这样使用TODO ```java if (id != null) { // TODO 这是一条更新待办 //更新 } else { // TODO 这是一条新增待办 //新增 } ``` 也可以在自定义TODO,并筛选出自己感兴趣的TODO ![](Pasted%20image%2020240728165808.png) ![](Pasted%20image%2020240728165709.png)