一篇文章带你搞定SpringBoot中的热部署devtools方法

一、前期配置

创建项目时,需要加入 DevTools 依赖

二、测试使用

(1)建立 HelloController

@RestController
public class HelloController {

  @GetMapping("/hello")
  public String hello(){
    return "hello devtools";
  }
}

对其进行修改:然后不用重新运行,重新构建即可:只加载变化的类

三、热部署的原理

Spring Boot 中热部署最最关键的原理就是两个不同的 classloader:

  • base classloader
  • restart classloader

其中 base classloader 用来加载那些不会变化的类,例如各种第三方依赖,而 restart classloader 则用来加载那些会发生变化的类,例如你自己写的代码。

Spring Boot 中热部署的原理就是当代码发生变化时,base classloader 不变,而 restart classloader 则会被废弃,被另一个新的 restart classloader 代替。在整个过程中,因为只重新加载了变化的类,所以启动速度要被重启快。

需要注意,使用devtools,默认情况下当静态资源发生变化时,并不会触发项目重启

到此这篇关于一篇文章带你搞定SpringBoot中的热部署devtools方法的文章就介绍到这了,更多相关SpringBoot 热部署devtools内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • SpringBoot如何通过devtools实现热部署

    这篇文章主要介绍了SpringBoot如何通过devtools实现热部署,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在项目的pom.xml文件添加如下两段 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <version>1

  • Spring Boot集成spring-boot-devtools开发时实现热部署的方式

    热部署是什么 大家都知道在项目开发过程中,常常会改动页面数据或者修改数据结构,为了显示改动效果,往往需要重启应用查看改变效果,其实就是重新编译生成了新的Class文件,这个文件里记录着和代码等对应的各种信息,然后Class文件将被虚拟机的ClassLoader加载. 而热部署正是利用了这个特点,它监听到如果有Class文件改动了,就会创建一个新的ClaassLoader进行加载该文件,经过一系列的过程,最终将结果呈现在我们眼前. 类加载机制 Java中的类经过编译器可以把代码编译为存储字节码的C

  • spring boot devtools在Idea中实现热部署方法

    1 pom.xml文件 注:热部署功能spring-boot-1.3开始有的 <!--添加依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <!-- optional=true,依赖不会传递,该项目依赖devtools:之后依赖myboot项目的项目如果想要使用d

  • SpringBoot实现devtools实现热部署过程解析

    1.修改pom.xml文件 <project> <dependencies> <!-- 使用devtool热部署插件(推荐) --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional>

  • SpringBoot2.X Devtools热部署实现解析

    pom文件引入所需jar包 springboot版本采用2.3.1 <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.7</maven.compiler.source> <maven.compiler.target>1.7</maven.compiler.target&g

  • springboot + devtools(热部署)实例教程

    技术介绍 devtools:是boot的一个热部署工具,当我们修改了classpath下的文件(包括类文件.属性文件.页面等)时,会重新启动应用(由于其采用的双类加载器机制,这个启动会非常快,如果发现这个启动比较慢,可以选择使用jrebel) 双类加载器机制:boot使用了两个类加载器来实现重启(restart)机制:base类加载器(简称bc)+restart类加载器(简称rc). bc:用于加载不会改变的jar(eg.第三方依赖的jar) rc:用于加载我们正在开发的jar(eg.整个项目里

  • SpringBoot Devtools实现项目热部署的方法示例

    我们在开发SpringBoot项目的时候,有些时候修改了一些Controller或者Service等组件,那么每次修改都需要去重启服务,这样的话严重的导致我们的开发效率降低,那么SpringBoot为我们提供了该问题的解决方案,那就是进行热部署,我们热部署使用到的组件是devtools. 修改pom文件增加maven的devtools依赖 <!-- 引入热部署依赖 --> <dependency> <groupId>org.springframework.boot<

  • 详解SpringBoot配置devtools实现热部署

    spring为开发者提供了一个名为spring-boot-devtools的模块来使Spring Boot应用支持热部署,提高开发者的开发效率,无需手动重启Spring Boot应用. devtools的原理 深层原理是使用了两个ClassLoader,一个Classloader加载那些不会改变的类(第三方Jar包),另一个ClassLoader加载会更改的类,称为restart ClassLoader,这样在有代码更改的时候,原来的restart ClassLoader 被丢弃,重新创建一个r

  • Springboot项目基于Devtools实现热部署步骤详解

    1.在pom.xml(如果是多模块,则此pom根据需要可设为具体模块)文件中添加 <dependency>     <groupId>org.springframework.boot</groupId>     <artifactId>spring-boot-devtools</artifactId>    <scope>runtime</scope>     <optional>true</option

  • Spring Boot 配置 IDEA和DevTools 热部署的方法

    MAVEN 配置 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/

随机推荐