从零开始学springboot笔记(四)-Spring boot之热部署之Springbootdevtools(工作中使用)

 

一、添加devtools依赖包

    <!-- springbootdevtools依赖包 -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-devtools</artifactId>
      <optional>true</optional>
      <scope>true</scope>
    </dependency>    

二、添加maven-plugin配置

复制代码
<build>
      <plugins>
          <!-- springloaded配置
          <plugin>
                 <groupId>org.springframework.boot</groupId>
                 <artifactId>spring-boot-maven-plugin </artifactId>
                 <dependencies>  
               <dependency>  
                   <groupId>org.springframework</groupId>  
                   <artifactId>springloaded</artifactId>  
                   <version>1.2.4.RELEASE</version>
               </dependency>  
            </dependencies>  
            <executions>  
               <execution>  
                   <goals>  
                       <goal>repackage</goal>  
                   </goals>  
                   <configuration>  
                       <classifier>exec</classifier>  
                   </configuration>  
               </execution>  
               </executions>
        </plugin>
         -->
         
        <!--添加spring-boot-maven-plugin: -->
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                  <!--fork :  如果没有该项配置,肯呢个devtools不会起作用,即应用不会restart -->
                <fork>true</fork>
            </configuration>
        </plugin>
      </plugins>
  </build>
复制代码

这样就可以测试了,

说明:

1. devtools会监听classpath下的文件变动,并且会立即重启应用(发生在保存时机),注意:因为其采用的虚拟机机制,该项重启是很快的。
2. devtools可以实现页面热部署(即页面修改后会立即生效,这个可以直接在application.properties文件中配置spring.thymeleaf.cache=false来实现(这里注意不同的模板配置不一样)

测试方面:

修改类-->保存:应用会重启
修改配置文件-->保存:应用会重启
修改页面-->保存:应用会重启,页面会刷新(原理是将spring.thymeleaf.cache设为false)

新增类-->应用重启

如果不能使用,请参考以下原因:

对应的spring-boot版本是否正确,这里使用的是1.4.1版本;
是否加入plugin以及属性<fork>true</fork>
Eclipse Project 是否开启了Build Automatically(我自己就在这里栽了坑,不知道为什么我的工具什么时候关闭了自动编译的功能)。
如果设置SpringApplication.setRegisterShutdownHook(false),则自动重启将不起作用。

修改了方法的返回值,是能够进行热部署的;
重新创建了一个方法,是能够进行热部署的;
重新创建了一个Class,是能够进行热部署的

posted @   xh_Blog  阅读(341)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示