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,是能够进行热部署的

  • 相关阅读:
    static用法
    Spring相关配置及工厂模式
    Mybatis的相关配置及理解
    jsp内置对象简介
    JAVA基础——接口的理解
    JAVA基础——抽象类以及final修饰符总结
    关于JAVA基础 ——继承的总结
    封装
    static的用法
    构造方法的重载
  • 原文地址:https://www.cnblogs.com/xh_Blog/p/10985668.html
Copyright © 2011-2022 走看看