IDEA配置热启动及与热部署的区别

 更新时间:2023年08月30日 11:03:12   作者:月半花开  
热启动是指在已经运行的项目上,再次启动,本文主要介绍了IDEA配置热启动及与热部署的区别,具有一定的参考价值,感兴趣的可以了解一下

1.背景

开发过程中,当写完一个功能我们需要运行应用程序测试,可能这个小功能中存在多个小bug,我们需要改正后重启服务器,这无形之中拖慢了开发的速度增加了开发时间,SpringBoot提供了spring-boot-devtools,使我们在更改应用和配置文件的时候,自动重启应用!

2.热启动配置步骤

1)添加Spring Boot DevTools依赖:

2)配置IDE:在你的集成开发环境(IDE)中,确保已启用自动构建和热交换(Hot Swap)功能。

3)启动应用程序:运行你的Spring Boot应用程序的主类 启动应用程序。

4)修改代码:在代码中进行更改和增加功能测试。

查看变化:当你进行代码更改后,保存文件并查看控制台或浏览器,你将看到应用程序会自动重新加载修改后的代码,并且任何更改都会在运行时生效。

2.1.工程中添加依赖

在项目的pom.xml文件中,添加Spring Boot DevTools依赖项。这可以通过pom.xml在<dependencies>标签内添加以下行来实现:

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

2.2.spring-boot-devtools简介

  • spring-boot-devtools是一个用于开发Spring Boot应用的开发工具,它提供了很多有用的功能,帮助开发人员提高开发效率和调试能力
  • 使用spring-boot-devtools可以自动监视应用的类文件和静态资源的变化,并且在变化时自动重新启动应用,从而节省了重新编译和手动重启的时间。
  • spring-boot-devtools还提供了一个内嵌的开发者工具页面,可以用来查看应用的详细信息,如自动配置报告、加载的bean等。
  • 通过在application.properties文件中定义相应的属性,可以对spring-boot-devtools进行配置,如关闭自动重启、指定资源变化触发的延迟时间等

3.设置IDEA自动编译

1) 快捷键Ctrl+Alt+S打开设置,在(Build, Execotion, Deployment) -> Compiler-> 勾选Build Project automatically项,重启IDEA。

2) 同时按下快捷键Ctrl + Shift + Alt + /,会弹出下面的方框,选择Registry

3) 勾选 compiler.automake.allow.when.app running和compiler.document.save.enabled(指定是否启用保存项目响应当文档被更改),并将它们的对应的保存动作延时时间适当缩小,或者使用默认值也可以。当然,我没修改它的默认值的时候,发现项目修改的时候,它自动重新热启动的时间有点久(可缩小对应时间或者参考本文下一段解决方法)。

4) 重启应用,当改动代码时,观察控制台输出,你会发现Spring Boot已经检测到了文件变化,并重新启动。

4.热启动与热部署的区别

热启动是指在已经运行的项目上,再次启动(代码、配置文件修改),少加载了一些东西,从而启动的比快,节省开发时间,启动应用程序时避免完全重启的能力。
热部署是指在应用程序正在运行时,可以进行代码、配置或资源的更改,而无需停止或重启应用程序。通过热部署,开发人员可以在不影响应用程序的正常运行的情况下,快速部署更新

热启动主要关注的是应用程序的整体重启过程,而热部署更侧重于动态更新和替换部分组件或功能。两者都是为了减少系统停机时间和提高系统的可用性。

到此这篇关于IDEA配置热启动及与热部署的区别的文章就介绍到这了,更多相关IDEA配置热启动内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java中@valid和@Validated注解的使用详解

    Java中@valid和@Validated注解的使用详解

    这篇文章主要介绍了Java中@valid和@Validated注解的使用详解,@Validated可以用在类型、方法和方法参数上,但是不能用在成员属性(字段)上,不支持嵌套检测,@Valid可以用在方法、构造函数、方法参数和成员属性(字段)上,支持嵌套检测,需要的朋友可以参考下
    2024-01-01
  • java @Data布尔值boolean的坑及解决

    java @Data布尔值boolean的坑及解决

    本文介绍了在使用Spring框架时,遇到的一个属性命名规则问题,在Spring框架中,如果类的属性名称第一个字母小写,第二个字母大写,那么在调用set方法时,Spring会将属性的后面的字母转换为小写,这种情况下,如果下游消费端调用得到的返回json串
    2024-10-10
  • 深入理解Java 线程池

    深入理解Java 线程池

    这篇文章主要介绍了Java 线程池的相关资料,文中讲解非常细致,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • Java中读写锁ReadWriteLock的原理与应用详解

    Java中读写锁ReadWriteLock的原理与应用详解

    Java并发编程提供了读写锁,主要用于读多写少的场景,今天我们就重点来讲解读写锁ReadWriteLock的原理与应用场景,感兴趣的可以了解一下
    2022-09-09
  • 解决SpringBoot项目中log4j与logback的Jar包冲突问题

    解决SpringBoot项目中log4j与logback的Jar包冲突问题

    这篇文章主要给大家介绍了解决SpringBoot项目中log4j与logback的Jar包冲突问题,文中有详细的解决方法和冲突的原因,有遇到相同问题的朋友可以参考阅读本文
    2023-10-10
  • Java使用poi导出ppt文件的实现代码

    Java使用poi导出ppt文件的实现代码

    Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java对Microsoft Office格式档案读和写的功能。本文给大家介绍Java使用poi导出ppt文件的实现代码,需要的朋友参考下吧
    2021-06-06
  • java实现操作系统的短进程作业调度示例分享

    java实现操作系统的短进程作业调度示例分享

    java编写的实现了操作系统中的短作业进程,可以实现几道作业同时作业调度
    2014-02-02
  • MybatisPlus中removeById删除数据库未变解决方案

    MybatisPlus中removeById删除数据库未变解决方案

    MyBatisPlus中,removeById需实体类标注@TableId注解以识别数据库主键,若字段名不一致,应通过value属性指定表主键字段名,确保正确映射
    2025-08-08
  • Java集合功能与用法实例详解

    Java集合功能与用法实例详解

    这篇文章主要介绍了Java集合功能与用法,结合实例形式详细分析了java集合的基本概念、功能、原理、操作技巧与使用注意事项,需要的朋友可以参考下
    2020-04-04
  • 基于Java反射技术实现简单IOC容器

    基于Java反射技术实现简单IOC容器

    这篇文章主要介绍了基于Java反射技术实现简单IOC容器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07

最新评论