ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

SpringBoot热部署

2026/9/13 23:53:41 拓冰建站 浏览量
SpringBoot热部署

SpringBoot热部署

借鉴链接🔗:SpringBoot中的热部署

  • 添加devtools依赖和pom插件
<!-- devtools 依赖 -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional>
</dependency><!-- devtools 插件 -->
<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><fork>true</fork><addResources>true</addResources></configuration></plugin></plugins>
</build>

image.png

  • Ctrl+Alt+Shift+/ —>registry---->打勾

image.png

  • 重启IDEA ----- 热部署OK!

Tomcat热部署

  • Artifact有两种形式:war和war exploded

image.png

  • 设置tomcat运行策略(以war exploded为例)

image.png
:::tips

  • **On Update action : **当代码改变的时候,需要IDEA为你做什么;

    • Update resources :如果发现有更新,而且更新的是资源文件(.jsp,.xml等,不包括java文件),就会立刻生效
    • Update classes and resources : 如果发现有更新,这个是同时包含java文件和资源文件的,就会立刻生效【这里需要注意一下:在运行模式下,修改java文件时不会立刻生效的;而debug模式下,修改java文件时可以立刻生效的。当然,两种运行模式下,修改resources资源文件都是可以立刻生效的。】
    • Redploy : 重新部署,只是把原来的war删掉,不重启服务器
    • Restart : 重启服务器
      :::
      :::tips
  • **On Frame deactivation : **当失去焦点(比如你最小化了IDEA窗口),需要IDEA为你做什么。

    • **Do nothing : **不做任何事 (一般推荐这个,因为失去焦点的几率太大)
    • Update resources : 失去焦点后,修改的resources文件都会立刻生效
    • Update classes and resources : 失去焦点后,修改的java ,resources文件都会立刻生效
      :::
      注:另外,如果Artifact是war包形式的话,On Update action与On frame deactivation中的选项也是不一样的:没有Update resources和 Update classes and resources这种选项,取而代之的是Hot Swap Classes选项,本质的意思是一样的。