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>
- Ctrl+Alt+Shift+/ —>registry---->打勾
- 重启IDEA ----- 热部署OK!
Tomcat热部署
- Artifact有两种形式:war和war exploded
- 设置tomcat运行策略(以war exploded为例)
:::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选项,本质的意思是一样的。