SpringBoot热部署

SpringBoot热部署

借鉴链接:SpringBoot中的热部署

  • 添加devtools依赖和pom插件

<dependency>
  <groupId>org.springframework.bootgroupId>
  <artifactId>spring-boot-devtoolsartifactId>
  <scope>runtimescope>
  <optional>trueoptional>
dependency>


<build>
  <plugins>
    <plugin>
      <groupId>org.springframework.bootgroupId>
      <artifactId>spring-boot-maven-pluginartifactId>
      <configuration>
        <fork>truefork>
        <addResources>trueaddResources>
      configuration>
    plugin>
  plugins>
build>

SpringBoot热部署_第1张图片

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

SpringBoot热部署_第2张图片

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

Tomcat热部署

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

SpringBoot热部署_第3张图片

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

SpringBoot热部署_第4张图片
:::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选项,本质的意思是一样的。

你可能感兴趣的:(spring,boot,后端,java)