SpringBoot热部署启动关闭流程详解

 更新时间:2023年04月21日 09:59:48   作者:.29.  
Spring Boot启动热部署是一种技术,它能让开发者在不重启应用程序的情况下实时更新代码。这样可以提高开发效率,避免频繁重启应用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧

一、pom.xml导入坐标

在SpringBoot工程的pom.xml配置文件中,添加以下依赖

        <!--手工启动热部署,用到的开发者工具依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>

二、手工启动热部署

IDEA中激活热部署

快捷键:Ctrl + F9

图形化界面Build Project

三、自动启动热部署

IDEA中自动激活热部署(IDEA失去焦点五秒后自动构建项目,启动热部署)

第一步:

File 》Setting 》Build、Execution、Deployment 》Compiler 》勾选Build project automatically

第二步:

File 》Setting 》advanced Settings 》勾选Allow auto-make to start even if development application is currently running

四、热部署范围配置

关于热部署:

  • 重启(Restart):自定义开发代码,包含类、页面、配置文件等,加载位置restart类加载器
  • 重载(ReLoad):jar包,加载位置base类加载器

热部署范围配置:

默认不触发重启的目录列表:

  • /META-INF/maven
  • /META-INF/resources
  • /resources
  • /static
  • /public
  • /templates

springboot配置文件中,手动设置不参与热部署的文件或文件夹:

# 将application.yml设置为不参与热部署,若需要设置多个参数,参数之间用逗号','隔开
spring:
  devtools:
    restart:
      exclude: application.yml

五、关闭热部署

绝对保障,使用不会被配置文件的配置所覆盖的,高优先级配置,来设置热部署关闭:

SpringBoot工程启动类中配置:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringbootSsmpApplication {
    public static void main(String[] args) {
        //设置热部署关闭
        System.setProperty("spring.devtools.restart.enabled","false");
        SpringApplication.run(SpringbootSsmpApplication.class, args);
    }
}

小结

开启开发者工具后启动热部署;

使用构建项目操作启动热部署(Ctrl+F9);

可以配置自动构建项目用于自动激活热部署;

热部署仅仅加载当前开发者自定义的开发的资源,不加载jar包资源;

可以在配置文件中设置热部署范围

可以在SpringBoot启动类中,使用比配置文件更高优先级的配置来关闭热部署

到此这篇关于SpringBoot热部署启动关闭流程下详解的文章就介绍到这了,更多相关SpringBoot热部署内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java注释转json插件开发实战详解

    java注释转json插件开发实战详解

    这篇文章主要为大家介绍了java注释转json插件开发实战详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • 教你如何使用Java实现WebSocket

    教你如何使用Java实现WebSocket

    这篇文章主要介绍了教你如何使用Java实现WebSocket问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • IntelliJ IDEA快速查询maven依赖关系图文教程

    IntelliJ IDEA快速查询maven依赖关系图文教程

    Maven提供了来查看依赖关系,而IDE往往提供了更加便利的方式,比如Eclipse或者IDEA都有类似的功能,下面这篇文章主要给大家介绍了关于IntelliJ IDEA快速查询maven依赖关系的相关资料,需要的朋友可以参考下
    2023-11-11
  • QR 二维码中插入图片实现方法

    QR 二维码中插入图片实现方法

    这篇文章主要介绍了QR 二维码中插入图片实现方法的相关资料,需要的朋友可以参考下
    2016-11-11
  • java并发编程之深入理解Synchronized的使用

    java并发编程之深入理解Synchronized的使用

    文详细讲述了线程、进程的关系及在操作系统中的表现,这是多线程学习必须了解的基础。本文将接着讲一下Java线程同步中的一个重要的概念synchronized,希望能够给你有所帮助
    2021-06-06
  • java输入字符串并将每个字符输出的方法

    java输入字符串并将每个字符输出的方法

    今天小编就为大家分享一篇java输入字符串并将每个字符输出的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • Java字典生成算法讲解

    Java字典生成算法讲解

    今天小编就为大家分享一篇关于Java字典生成算法讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • JDK 8和JDK 17的区别和新特性大全

    JDK 8和JDK 17的区别和新特性大全

    这篇文章主要给大家介绍了关于JDK 8和JDK 17的区别和新特性的相关资料,文中总结一些Jdk8到Jdk17的一些新特性,给大家选择jdk版本的时候有些参考性,需要的朋友可以参考下
    2023-06-06
  • MyBatis如何调用存储过程与存储函数

    MyBatis如何调用存储过程与存储函数

    这篇文章主要介绍了MyBatis如何调用存储过程与存储函数,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • MyBatis特殊字符转义拦截器问题针对(_、\、%)

    MyBatis特殊字符转义拦截器问题针对(_、\、%)

    这篇文章主要介绍了MyBatis特殊字符转义拦截器问题针对(_、\、%),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02

最新评论