Springboot 整合devtools实现热部署

简介: Springboot 整合devtools实现热部署

在该篇文章开始前,我先说一句:

本人觉得,了解下阔以,实用性不大。

好,接下来我们来一起编码:

首先我们是基于IDEA(如果你是用Eclipse,你直接跳过这设置环节完后看就行),要实现热部署的前提就是,我们修改代码,要让项目自动重新编译。那么IDEA里面就需要设置一下,


① 点击'File’---‘Settings’,搜索'Compiler',然后勾选 Build project automatically:

image.png


② 在IDEA 按快捷键 Ctrl+Shift+Alt+/  ,进入页面点击 ‘registry’,勾选‘complier.automake.allow.when.app.running’:


image.pngimage.png


ps:如果你的快捷键错了或者改过了,可以在 点击'File’---‘Settings’,搜索'Maintenance',看下快捷键或者重新设置一下。

设置完毕,接着我们开始导入依赖:


        <!--热部署-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <!-- optional=true,依赖不会往下传递,如果有项目依赖本项目,并且想要使用devtools,需要重新引入 -->
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>


然后是修改下pom.xml里面的插件配置:


    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <!-- 没有该项配置,测试devtools不起作用 -->
                <configuration>
                    <fork>true</fork>
                    <addResources>true</addResources>
                </configuration>
            </plugin>
        </plugins>
    </build>


记下来是application.properties添加相关配置:


#服务端口
server.port=8055
#开启热部署
spring.devtools.restart.enabled=true
#自定义key/value 值
test-key=JCccc-test-key-one


最后,开始进入测试环节:

 

创建TestController.java ,写个测试的接口:


import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * @Author : JCccc
 * @CreateTime : 2019/10/12
 * @Description :
 **/
@RestController
public class TestController {
    @Value(value = "${test-key}")
    private String testKey;
    @GetMapping("testApi")
    public String testHotDeployment() {
        return "Wonderful :"+testKey;
    }
}


运行项目,调用接口:


image.png


接下来我们直接修改接口代码,修改后保存一下,


image.png


可以看到编译器控制台输出了(这些检测到我们修改了自动编译打印输出的日志):


PS:如果你一直发现没有输出这些日志,也许是卡了。本人在电脑跑很多项目,发现有时IDEA会出现自动编译延迟的情况。


image.png


然后再调用接口,可以看到热部署效果实现了:


image.png

相关文章
|
4月前
|
JavaScript Android开发
Spring-boot-devTools无效解决办法,idea中devtools不起作用
Spring-boot-devTools无效解决办法,idea中devtools不起作用
646 0
|
14天前
|
前端开发 Java 开发者
Spring Boot DevTools 热部署神器,助你在开发浪潮中乘风破浪,一骑绝尘!
【8月更文挑战第29天】在快速迭代的软件开发领域,高效开发至关重要。Spring Boot DevTools 作为一款优秀的热部署工具,可自动重新加载代码修改,无需手动重启应用,大幅节省时间,即时预览修改效果,简化开发流程。通过简单示例,展示了其自动刷新静态资源和模板文件的功能,有效提升了开发效率,使开发者更专注于功能实现。它就像是开发者的得力助手,显著减少等待时间,带来更高效、流畅的开发体验。
26 0
|
1月前
|
Java
SpringBoot 开发环境热部署
SpringBoot 开发环境热部署
26 0
|
4月前
|
IDE Java 开发工具
Spring Boot DevTools:加速开发的热部署工具
【4月更文挑战第28天】在Spring Boot的开发过程中,快速反馈和效率至关重要。Spring Boot DevTools是一个为开发者设计的模块,支持热部署(hot swapping),能够实现应用的快速重启和自动重载,极大地提高了开发效率。本篇博客将介绍Spring Boot DevTools的核心概念,并通过具体的实战示例展示如何在开发过程中利用这一工具。
97 0
|
4月前
|
Java Maven Android开发
SpringBoot - 项目热部署与devtools
SpringBoot - 项目热部署与devtools
55 0
|
Web App开发 前端开发 JavaScript
SpringBoot开发模式自动重启热部署spring-boot-devtools
SpringBoot开发模式自动重启热部署spring-boot-devtools
194 0
SpringBoot开发模式自动重启热部署spring-boot-devtools
|
Web App开发 前端开发 JavaScript
SpringBoot开发模式自动重启热部署spring-boot-devtools
SpringBoot开发模式自动重启热部署spring-boot-devtools
186 0
SpringBoot开发模式自动重启热部署spring-boot-devtools
|
缓存 IDE 前端开发
Spring Boot 开发环境热部署(HotSwap)详解
前言 Spring Boot 提出了多项开箱即用的功能特性,但归根到底还是围绕简化应用的创建、开发、运行。开发环境下我们经常对项目代码进行变动,如果每次都重新启动应用会浪费我们大量时间,为此就产生了多种进行热部署的方案,可以在不重启的情况下使用新的代码。
434 0
Spring Boot 开发环境热部署(HotSwap)详解
|
Web App开发 前端开发 JavaScript
SpringBoot开发模式自动重启热部署spring-boot-devtools
SpringBoot开发模式自动重启热部署spring-boot-devtools
129 0
SpringBoot开发模式自动重启热部署spring-boot-devtools