你好,欢迎进入江苏优软数字科技有限公司官网!

诚信、勤奋、创新、卓越

友好定价、专业客服支持、正版软件一站式服务提供

13262879759

工作日:9:00-22:00

intellij idea java SpringBoot热部署神器:spring-boot-devtools,修改代码自动重启,开发效率翻倍

发布时间:2025-11-19

浏览次数:0

日常运用开发应用之际,更改代码之后要再度启动方可生效。要是你的应用足够庞大,启动说不定得耗费好几分钟。有无什么法子能够加快启动进程,使我们开发应用代码更具效率呢?今日给大伙推举一款官方的热部署工具-boot-,修改完代码后能够迅速自动重启应用!

-boot-简介

由官方所开发的工具,要是你的应用将它进行集成了,那么就能够达成热部署以及远程调试

实现原理

该工具应用使用后为何启动加快?主要缘由是其运用了两种各异的类加载器。基础类加载器用以加载不会变动的类,像第三方库内的类。重启类加载器用来加载你应用程序里的类。在应用程序启动之际intellij idea java,重启类加载器中的类会被替换,这表明重启会比冷启动更快!

热部署

接下来我们将集成,来演示下热部署功能。


    org.springframework.boot
    spring-boot-devtools
    true

/**
最初是由宏观于2021年3月25日把它给创建出来的 ,把之前的内容补充成完整的句子,让它更通顺一些,。
 */
在Spring Boot Dev Tools测试的相关情境下,存在一个被标记为@Api的内容,其中tags的取值为"TestController", 并且description所对应的描述为"SpringBoot Dev Tools测试" 。
@Controller
@RequestMapping("/test")
public class TestController {
    @ApiOperation("测试修改")
对于请求映射,其值为“/first”,方法是GET请求方式 ,以@RequestMapping修饰 ,有对应的注解 。
    @ResponseBody
public,CommonResult,first这个东西是有的,{  }。
变为字符串的 用以展现回应回馈内容的 那段符号组合 被赋予了 返回消息 这样的表述 。
    }
}

{
  "code": 200,
  "message": "返回消息",
  "data": null
}

/**
 * Created by macro on 2021/3/25.
 */
@Api(tags = "TestController", description = "SpringBoot Dev Tools测试")
@Controller
@RequestMapping("/test")
public class TestController {
    @ApiOperation("测试修改")
    @RequestMapping(value = "/first", method = RequestMethod.GET)
    @ResponseBody
    public CommonResult first() {
有一个字符串变量,它被命名为message,其值是“返回消息(已修改)” 。
        return CommonResult.success(null,message);
    }
}

{
“时间戳”是,“2021年3月29日”,“07时09分05秒415毫秒”,“ 协调世界时偏移量为00:00”。
  "status": 404,
  "error": "Not Found",
提供的内容为,“消息”这一表述所对应的是,“没有可用的消息” 。
  "path": "/test/first"
}

spring:
  devtools:
    restart:

spring-boot-devtools热部署_spring-boot-devtools远程调试_intellij idea java

      poll-interval: 2s       quiet-period: 1s

{
  "code": 200,
  "message": "返回消息(已修改)",
  "data": null
}

远程调试

支持热部署之外,同样支持远程调试,接下来将应用部署于容器之中,而后去尝试远程调试!


    org.springframework.boot
    spring-boot-maven-plugin
    
        
        false
    

spring:
  devtools:
    remote:
      secret: macro666

执行docker run指令,这个指令用于运行容器,它设置了端口映射,将主机的8088端口映射到容器的8088端口,这是一对端口映射关系,同时还为运行的容器指定了名称,名称为mall-tiny。
--link mysql:db \
减号,斜杠,等等,加上,等等,斜杠,等等,本地时间文件路径,冒号,等等,本地时间文件路径,反斜杠。
冒号是分隔符,这里是这样分隔,变为:-v,/mydata/app/mall-tiny/logs,:/var/logs ,这里的反斜杠是防止换行,。
连着短距离的商场,微小的商场,微小的开发工具版本号为1.0-SNAPSHOT 。

信息为2021年3月29日15时49分50秒991毫秒,级别为信息,编号是7848,,在主线程中,名为o.s.b.devtools.RemoteSpringApplication的程序开始启动,其版本是v2.3.0.RELEASE,运行在名为DESKTOP - 5NIMJ19的设备上,进程ID是7848 。
这是一个日期时间戳,表明是2021年3月29日15时49分51秒003毫秒,有一个信息记录,记录的级别是信息级,记录的编号是7848,记录的线程是主线程,涉及的类是Spring Boot开发工具中的远程Spring应用程序设置,其内容为没有设置活动配置文件并且回退到默认配置文件即默认。
那个2021年3月29日15时49分51秒664毫秒出现的WARN,7848号,在[main]这个环境下,o.s.b.d.r.c.RemoteClientConfiguration所显示的是,到http://192.168.5.78:8088的连接不安全,你应该使用以'https://'开头的URL。
2021 年 3 月 29 日 15 时 49 分 52.024 秒,信息标志为 7848,消息来自于以主程序部分的线程运行的名为 o.s.b.d.a.OptionalLiveReloadServer 的部分,内容是 LiveReload 服务器正在端口 35729 上运行 。
在2021年3月29日,15时49分52秒055毫秒,信息记录显示,编号为7848的相关内容,在名为[main]的进程里,由o.s.b.devtools.RemoteSpringApplication引发,该应用启动耗时2.52秒,此时JVM已运行4.236秒 。

/**
 * Created by macro on 2021/3/25.
 */
@Api(tags = "TestController", description = "SpringBoot Dev Tools测试")
@Controller
@RequestMapping("/test")
public class TestController {
    @ApiOperation("测试修改")
    @RequestMapping(value = "/first", method = RequestMethod.GET)
    @ResponseBody
    public CommonResult first() {
字符型变量message被赋予这样一个值,即“返回消息(远程调试)” 。
        return CommonResult.success(null,message);
    }
}

{
  "code": 200,
  "message": "返回消息(远程调试)",
  "data": null
}

总结

尽管运用官方的能够开展热部署,然而此种方式更类似于热重启,要是你期望拥有更快的热部署体验intellij idea java,那么是能够采用的。

如有侵权请联系删除!

13262879759

微信二维码