




IDEA中添加Tomcat Server需满足:项目为Java Enterprise或Maven Web类型、已配置Project SDK和Web facet、Ultimate版支持、正确设置Artifacts(Exploded或Archive)、web.xml存在、context path匹配访问路径,热更新仅支持方法体内修改。
这是因为没装或没启用 Smart Tomcat 插件,或者当前项目类型不匹配。IDEA原生支持Tomcat,但只对 Java Enterprise 或 Maven Web Application 类型项目显示 Tomcat Server 配置入口。
确认方式:打开 File → Project Structure → Project,检查 Project SDK 和 Project language level 是否已设置;再进 Modules,确保至少一个模块的 Web facet 已添加(点击 + → Web Application)。
Web facet → Run → Edit Configurations 里压根不会出现 Tomcat Server 选项Java 模块而非 Maven 或 Gradle Web 项目 → 即使手动加 facet,Artifact 也可能为空,导致部署失败Ultimate 版,否则只能靠插件或外置启动这是 artifact 没选对或路径没配好。IDEA 启动 Tomcat 本质是把打包产物(war 或 exploded 目录)部署进去,而这个产物必须通过 Artifacts 显式定义。
解决路径:File → Project Structure → Artifacts → 点 + → Web Application: Archive(生成 war)或 Web Application: Exploded(直接部署 class + webapp)。关键点:

Include in project build
Output directory)别手动改,用默认值,否则 IDEA 可能找不到pom.xml 中 packaging 是 war,且 maven-war-plugin 没被 disablewebapp/WEB-INF/web.xml 是否存在(哪怕空文件),缺失会导致 exploded 部署失败Tomcat 启动成功 ≠ 应用部署成功。404 多数是上下文路径(context path)或访问地址没对上。
常见情况:
Application context 在 Run Configuration 里设成了 /,但实际访问用了 http://localhost:8080/myapp → 应该访问 http://localhost:8080/
/myapp,但没在浏览器输全路径 → 必须访问 http://localhost:8080/myapp/(注意末尾斜杠)/api/*,但请求发到了 / → 检查 @WebServlet 或 web.xml 里的
webapp 根目录,或没在 web.xml 里声明
IDEA 的热部署(HotSwap)能力有限:它只支持方法体内部修改,不支持新增/删减字段、方法签名变更、类结构改动。且需配合 Tomcat 的 reload 行为。
实操要点:
On 'Update' action → Update classes and resources
Ctrl+F10(Windows/Linux)或 Cmd+F10(macOS)触发 update,不是重新 runSpring Boot 运行配置 + spring-boot-devtools
真正稳定的开发流是:小改用 HotSwap,大改就重启。别指望改个 private 字段还能自动 reload。