spring-boot-devtools 实现热部署

1.devtools

  spring为开发者提供了一个名为spring-boot-devtools的模块来使Spring Boot应用支持热部署,提高开发者的开发效率,无需手动重启Spring Boot应用。

2.项目搭建

  本文是采用IDEA搭建的Spring Boot应用,通过spring-boot-devtools配置,可以支持修改java文件会自动重启程序,一些资源无需触发重启,例如thymeleaf模板文件就可以实时编辑。默认情况下,更改/META-INF/maven,/META-INF/resources ,/resources ,/static ,/public 或/templates下的资源不会触发重启,而是触发livereload。devtools模块包含一个嵌入的livereload服务器,可以在资源变化时用来触发浏览器刷新。浏览器需要在livereload.com下载安装扩展。 例如Chrome浏览器在应用商店安装livereload插件后,在要自动刷新的页面点击对应的图标,启动应用后更新页面内容或者css等都会触发页面自动刷新。

3.livereload

  livereload 通过引入的脚本livereload.js在 livereload 服务和浏览器之间建立了一个 WebSocket 连接。每当监测到文件的变动,livereload 服务就会向浏览器发送一个信号,浏览器收到信号后就刷新页面,实现了实时刷新的效果。每次启动时,需要点击对应的图标,如下图所示。

4.项目代码配置

(1)pom.xml配置文件


1

2

3

4

5

6

7

8

9

10

11

12

<dependency>

   <groupId>org.springframework.boot</groupId>

   <artifactId>spring-boot-devtools</artifactId>

   <optional>true</optional>

</dependency>

<plugin>

   <groupId>org.springframework.boot</groupId>

   <artifactId>spring-boot-maven-plugin</artifactId>

   <configuration>

      <fork>true</fork<!-- 如果没有该配置,devtools不会生效 -->

   </configuration>

</plugin>

(2)yml配置


1

2

3

4

5

6

devtools:

  livereload:

    enabled: true #是否支持livereload

    port: 35729

  restart:

    enabled: true #是否支持热部署

5.IDEA配置

(1)File-Settings-Compiler-Build project automatically

(2)ctrl + shift + alt + /,选择Registry,勾上 Compiler autoMake allow when app running

6.安装livereload插件
下载livereload插件,将其安装到chrome扩展程序中,并选中允许访问文件网址。


7.测试
(1)修改类 应用会重启
(2)修改配置文件 应用会重启
(3)修改静态文件(html、css等),应用不会重启,但是会调用livereload,浏览器会自动刷新,显示最新的修改内容。

转自(https://www.cnblogs.com/TechSnail/p/7690829.html)

原文地址:https://www.cnblogs.com/chenkeyu/p/10296588.html

时间: 2024-08-30 17:34:23

spring-boot-devtools 实现热部署的相关文章

Spring boot 两种热部署方式 springloader 和 devtools

什么是热部署? 热部署,就是在应用正在运行的时候升级软件,却不需要重新启动应用.在平时编写代码的时候,你会发现我们只是简单把打印信息改变了,就需要重新部署,如果要改变这样的方式,就需要用到热部署springloaded. 使用方式,在项目中的pom.xml中plugin里添加依赖: <dependencies> <!--springloaded hot deploy --> <dependency> <groupId>org.springframework&

Spring Boot 2.0 热部署指南

Spring Boot 2.0 支持热部署,实现方法很简单 Spring Boot 2.0 有几种热重载的选项. 推荐的方法是使用spring-boot-devtools 因为它提供了额外的开发时间功能,例如支持快速应用程序重启和LiveReload以及合理的开发时配置(如模板缓存). Devtools通过监视类路径的变化来工作. 这意味着静态资源更改必须"建立",以使更改生效. 默认情况下,当您保存更改时,这会在Eclipse中自动发生. 在IntelliJ IDEA中,Make P

Spring Boot 五种热部署方式

[推荐]2019 Java 开发者跳槽指南.pdf(吐血整理)>>> 1.模板热部署 在SpringBoot中,模板引擎的页面默认是开启缓存的,如果修改了页面的内容,则刷新页面是得不到修改后的页面的,因此我们可以在application.properties中关闭模版引擎的缓存,如下: Thymeleaf的配置: spring.thymeleaf.cache=false FreeMarker的配置: spring.freemarker.cache=false Groovy的配置: spr

spring boot入门之——热部署

场景: 本地调试(频繁的启动/停止服务器) 线上发布(每次都需要启动/停止服务器) 优点: 无论本地还是线上,都适用 无需重启服务器,提高开发.调试效率:提升发布.运维效率,降低运维成本 java实现热部署有哪几种方式? 通过配置tomcat,直接把项目放在webapps里. 在tomcat\conf\server.xml中的<host></host>中添加<context debug="0" docBase="" path="

SpringBoot配置devtools实现热部署

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

使用IDEA 中 实现springboot 热部署 (spring boot devtools版)

第一步:添加springboot的配置文件 首先我先贴出我的配置 添加依赖包 <!-- spring boot devtools 依赖包. --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> <

使用spring boot devtools不要多此一举加try...catch

spring-boot-devtools是个好东西,在开发调试时可以随时热部署,不用每次手工启停.前两天一个项目查log,发现总有这样的错误日志输出: org.springframework.boot.devtools.restart.SilentExitExceptionHandler$SilentExitException at org.springframework.boot.devtools.restart.SilentExitExceptionHandler.exitCurrentTh

第十七章 springboot + devtools(热部署)

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

Spring Boot2.0之热部署原理

所谓的热部署:比如项目的热部署,就是在应用程序在不停止的情况下,实现新的部署 原理: 实用类加载器(classloader重新读取字节码文件到jvm内存) 如何纯手写一个热部署功能: 1.监听 class文件是否发生改变  版本号.修改时间  作对比 2.如果发生改变就用classloader进行重新读取 热部署要是用在生产环境,性能很差了.不安全! 热部署用在本地开发(eclipse idea)用来提高效率 Spring Boot使用 devtools做热部署 有些工具是有热部署的功能的 修改

IDEA新建SpringBoot+MySQL+MyBatis+Lombok+Spring Boot DevTools项目

一,IDEA新建SpringBoot+MySQL+MyBatis+Lombok+Spring Boot DevTools项目 1,新建项目的选中项 2,新建后我们需要配置勾选这个自动编译 3,按住shift+alt+ctrl+/,然后选中registry 4,然后选中这个选项 5,然后在 pom.xml文件添加以下代码,开启热部署工具,不配置不生效 <build> <plugins> <plugin> <groupId>org.springframework