zoukankan      html  css  js  c++  java
  • Springboot自动加载工具-devtools的理解与使用

    声明:本文参考自:https://blog.csdn.net/mylovewanzi/article/details/104059933

    使用spring-boot-devtools的应用程序将在类路径上的文件发生更改时自动重新启动。

    在pom.xml文件中加入一下依赖

    <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-devtools</artifactId>
         <scope>runtime</scope>
         <optional>true</optional>
    </dependency>

    这里多了一个optional,为true表示项目在打包的时候不会被打包进项目中

    此时,只要classpath下的文件发生了变化,项目就会自动重启,这极大的提高了项目的开发速度

    要是项目自动编译,idea还需做一些简单的配置。

    打开setting,勾选自动构建项目。

     然后按住CTRL+SHIFT+ALT+/,调出如下页面:选择第一个

     然后找到如下,并勾选:

    重启IDEA,这是你就可以使用devtools来自动构建项目了。

    springboot中自动重启项目的原理:

      springboot中有两个类加载器,一个是basecalssloader,负责项目引用的第三方jar,这类jar有一种特新,就是不会变化;另一个加载器是restartcalssloader,它用来加载自己写的class,这写类是有可能变化的。当项目需要重启时,restartclassloader会被新创建的类加载器替代,而baseclassloader则不会,这要就省去了重新加载第三方jar包的时间,自然启动速度就比冷启动要快。

    静态资源文件:
      默认情况下,静态资源文件的修改是不触发项目重启的。当然也不是不能,开发者可以自己定义。
    需要在配置文件中添加:

    spring.devtools.restart.exclude=static/**

    这表示static目录下的静态资源文件的修改也会触发项目重启。
    还有另一种方式,也是同样的效果:

    spring.devtools.restart.additional-paths=src/main/resources/static

    编码是一个连续的过程,有时候重启太频繁了,不仅浪费电脑性能,也浪费我的宝贵时间。有一个方法可以解决这个问题,就是在你需要重启项目时,修改一个指定的文件,只有这个指定的文件被修改才能触发重启项目,配置如下:

    spring.devtools.restart.trigger-file=.trigger-file

    其实静态资源文件的修改是没必要重启项目的,devtools默认键入了LiveReload服务器,可以解决静态资源的热部署。只需要在chrome安装livereload插件即可。

     

  • 相关阅读:
    云图说 | GPU共享型AI容器,让AI开发更普及
    手把手带你写Node.JS版本小游戏
    一个银行客户经理的“变形记”
    大厂运维必备技能:PB级数据仓库性能调优
    软件工程开发之道:了解能力和复杂度是前提
    大数据管理:构建数据自己的“独门独院”
    结构体与共用体05 零基础入门学习C语言57
    结构体与共用体04 零基础入门学习C语言56
    PE格式详细讲解1 系统篇01|解密系列
    初步认识PE格式 基础篇06|解密系列
  • 原文地址:https://www.cnblogs.com/wk-missQ1/p/13206591.html
Copyright © 2011-2022 走看看