zoukankan      html  css  js  c++  java
  • 从零开始学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,是能够进行热部署的

  • 相关阅读:
    Java中如何判断一个字符串是否为数字
    Web发展简史
    常用编程语言
    浏览器运行原理
    [LeetCode]69. x 的平方根(数学,二分)
    [计算机网络]TCP/IP协议-运输层
    [剑指Offer]33-根据后序序列判断是否能组成BST
    [剑指Offer]17-打印从1到最大的n位数(递归)
    [剑指Offer]56-数组中数字出现的次数(位运算)
    [剑指Offer]18-题目一:删除链表的节点 题目二:删除链表中重复节点
  • 原文地址:https://www.cnblogs.com/xh_Blog/p/10985668.html
Copyright © 2011-2022 走看看