Springboot开发热部署的方法

背景

Spring Boot 提出了多项开箱即用的功能特性,但归根到底还是围绕简化应用的创建、开发、运行。开发环境下我们经常对项目代码进行变动,如果每次都重新启动应用会浪费我们大量时间,为此就产生了多种进行热部署的方案,可以在不重启的情况下使用新的代码。

spring-boot-devtools

如何使用spring-boot-devtools

Spring Boot 通过 Maven 插件 spring-boot-devtools 提供对热部署的支持,只要将这个依赖添加到类路径,当类路径下的 class 发生变化时就会自动重启应用上下文,从而使用新的 class 文件中的代码。这个插件的坐标如下。

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

引入依赖时指定 optional 避免依赖传递,同时 spring-boot-maven-plugin 打包时也会忽略 spring-boot-devtools 插件。

spring-boot-devtools 功能特性

spring-boot-devtools 作为一个开发环境的插件,不仅支持热部署,具体来说有以下特性。

  1. 将第三方库(如 thymeleaf、freemarker)缓存相关的属性配置到 Environment,以便开发环境禁用缓存。
  2. 类路径下的 class 文件发生变更时触发 ApplicationContext 重启。
  3. 内嵌 LiveReload 服务器,资源发生变化时触发浏览器刷新。
  4. 支持全局配置,所有的 Spring Boot 应用的 spring-boot-devtools 插件使用同一套配置,如指定检查 class 文件变化的轮训时间。
  5. 支持远程触发热部署(不推荐使用,一般都没什么机会用到)。

JRebel(推荐)

使用方法:

安装

在IDEA中,安装JRebel的插件
在这里插入图片描述

激活JRebel

选择 Team URL,在 https://jrebel.qekang.com/ 网站可以查找 可用的 Team URL,然后输入任意邮箱即可激活。
这里我输入了自己的邮箱
激活后要点击右下角的enbale to project按钮。如果没选的话,点击JRebel的调试启动按钮也会提醒你一次。

开启JRebel对项目的支持

在这里插入图片描述
勾选项目名称右侧的第一个复选框即可快速开启 JRebel 对项目的支持。此时将在 resources 目录下生成一个 rebel.xml 文件,这个文件用于配置 JRebel 监听的类路径。
注:如果启动了项目之后勾选的话,记得要重新启动整个项目才能开启。

修改自动编辑设置

访问 Setting,在 Compiler 页面下勾选 Build project automatically 开启自动构建功能。
在这里插入图片描述

保存文件设置

访问 Setting 页面,在 System Settings 页面下勾选 Save file if the IDE is idle for。
在这里插入图片描述

这里一定要选择自动保存,手动保存似乎没办法触发热部署

启动项目

在这里插入图片描述
要使用这个按钮进行debug启动,而不是之前的debug按钮

缺点

由于我使用的Mybatis,每次当我改了xml文件的时候,都必须重启整个项目,因为热部署插件仅仅是替换了class文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值