最新Idea中Tomcat 代码热更新问题

300 阅读2分钟

场景

针对SSM框架开发的项目(Spring MVC项目)来说,通常是在Idea中配置Tomcat去启用运行的。 这类框架有个共同点就是前后端还没有分离,那么在项目中修改了前端代码如何做到热更新呢, 其实只需要配置一下Tomcat就可以了

方案

  1. 配置tomcat,在deployment中选择 war exploded

在 Java Web 开发中,WARWAR exploded 是两种不同的部署方式,它们的主要区别在于文件结构和部署机制.
WAR 包含完整的文件夹结构,如 WEB-INFMETA-INF 等,但以压缩包的形式存在,在部署时,应用服务器(如 Tomcat)会自动解压 .war 文件并将其内容复制到服务器的工作目录中,然后运行应用.
WAR exploded.war 文件的解压版,指的是一个未压缩的目录结构,包含应用的所有文件和目录,一般就在Target文件夹中,便于开发时快速修改和调试代码,避免每次更新都要重新打包和部署。

image.png

  1. 配置On 'Update' action或On frame deactivation选项

On 'Update' actio 选择 Update classes and resources选项 **

这个选项会更新 Java 类和资源文件(如 JSP 和 HTML),但是不会完全重启 Tomcat。这是一个更轻量的操作,只会更新你修改过的部分,而不会重新部署整个应用。适用于频繁修改静态资源(如 CSS、JavaScript)或类文件的场景

image.png

配置完成后,运行代码,并修改代码,点击Idea运行中的这个更新按钮,代码就更新到Tomcat服务器了 image.png

On frame deactivation 选择 Update classes and resources选项
这个选项会在你离开当前编辑框架时自动更新 Java 类和资源文件

当离开编辑框的时候,代码已经更新,这个时候去浏览器那边刷新,就会看到资源文件已经更新过去了