前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spring Boot的热部署

Spring Boot的热部署

作者头像
别团等shy哥发育
发布2023-02-25 16:54:31
4870
发布2023-02-25 16:54:31
举报
文章被收录于专栏:全栈开发那些事

Spring Boot的热部署

一、前言

在开发中,业务变化、代码错误等发生时,难免修改程序。为了正确运行出修改的结果,我们往往需要重启应用,否则将不能看到修改后的结果,这一启动过程是非常浪费时间的,导致开发效率低。因此,我们有必要学习Spring Boot开发的热部署,自动实现应用的重启和部署,大大提高开发调试效率。

二、模板引擎的热部署

在Spring Boot应用中,使用模板引擎的页面默认是开启缓存的,如果修改了页面内容,则刷新页面是得不到修改后的页面的效果的。因此,可以在配置文件application.properties中关闭模板引擎的缓存。实例代码如下:

代码语言:javascript
复制
#关闭Thymeleaf缓存
spring.thymeleaf.cache=false
#关闭FreeMarker缓存
spring.freemarker.cache=false
#关闭Groovy缓存
spring.groovy.template.cache=false

三、使用Spring-boot-devtools进行热部署

在Spring Boot应用的pom.xml文件中添加spring-boot-devtools依赖即可实现页面和代码的热部署。 spring-boot-devtools是一个为开发者服务的模块,最重要的功能就是自动实现将修改的应用代码更新到最新的应用上。其工作原理是使用两个ClassLoader:一个ClassLoader加载那些不会改变的类(如第三方JAR包);一个ClassLoader加载更新的类。成为Restart ClassLoader。这样在有代码修改时,原来的Restart ClassLoader被丢弃,重新创建一个Restart ClassLoader加载更新的类。由于只加载部分修改的类,所以实现了较快的重启。

四、IDEA准备工作

1、开启代码自动编译

File->Setting->Build,Execution,Deployment->Compiler-> 勾选Build Project automatically

在这里插入图片描述
在这里插入图片描述

2、允许程序运行的时候自动编译

使用快捷键

代码语言:javascript
复制
ctrl+shift+alt+/

选中Registry

在这里插入图片描述
在这里插入图片描述

选中compiler.automake.allow.when.app.running

在这里插入图片描述
在这里插入图片描述

五、代码测试热部署

1、创建SpringBoot Web应用ch9_1

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、在配置文件application.properties中添加如下内容:

代码语言:javascript
复制
#关闭Thymeleaf缓存
spring.thymeleaf.cache=false
#关闭FreeMarker缓存
spring.freemarker.cache=false
#关闭Groovy缓存
spring.groovy.template.cache=false

3、创建控制器类

在com.ch.ch9_1包中,创建控制器类TestDevToolsController package com.ch.ch9_1;

import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;

@RestController public class TestDevToolsController { @RequestMapping("/testDevTools") public String testDevTools(){ return “test DevTools 111”; } }

4、测试运行

首先,启动主类Ch91Application,访问http://localhost:8080/testDevTools

在这里插入图片描述
在这里插入图片描述

将testDevTools方法中的return语句修改如下:

代码语言:javascript
复制
return "testDevTools 222";

无需重启ch9_1应用,直接刷新http://localhost:8080/testDevTools,运行效果如下:

在这里插入图片描述
在这里插入图片描述

可以看出,spring-boot-devtools实现了代码修改后的热部署,同样,也可以实现新增类、修改配置文件等的热部署。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-04-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Spring Boot的热部署
  • 一、前言
  • 二、模板引擎的热部署
  • 三、使用Spring-boot-devtools进行热部署
  • 四、IDEA准备工作
    • 1、开启代码自动编译
      • 2、允许程序运行的时候自动编译
      • 五、代码测试热部署
        • 1、创建SpringBoot Web应用ch9_1
          • 2、在配置文件application.properties中添加如下内容:
            • 3、创建控制器类
              • 4、测试运行
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档