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配置热启动内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringBoot2基于重复创建bean的问题及解决

    SpringBoot2基于重复创建bean的问题及解决

    这篇文章主要介绍了SpringBoot2基于重复创建bean的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • 详解springboot+atomikos+druid 数据库连接失效分析

    详解springboot+atomikos+druid 数据库连接失效分析

    本文主要介绍了springboot+atomikos+druid 数据库连接失效分析,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • 手撸一个 spring-boot-starter的全过程

    手撸一个 spring-boot-starter的全过程

    这篇文章主要介绍了手撸一个 spring-boot-starter的全过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • Java使用arthas修改日志级别详解

    Java使用arthas修改日志级别详解

    在我们线上环境中,一般不会开启debug级别的日志,为了提高性能 info和warning级别的日志也一般不会打印出来,那么如果遇到线上问题,除了使用arthas定位问题,想通过查询日志来实现问题定位,如何查看logger信息,更新logger level呢,下面我们来了解arthas修改日志级别
    2022-06-06
  • Mybatis SqlSession案例详解

    Mybatis SqlSession案例详解

    这篇文章主要介绍了Mybatis SqlSession详解,本文我们讲了如何创建SqlSession的几个步骤,最后我们获得一个DefaultSqlSession对象,里面包含了执行器Executor和配置对象Configuration,需要的朋友可以参考下
    2023-04-04
  • Java生成PDF文件的实例代码

    Java生成PDF文件的实例代码

    Java生成PDF文件的实例代码,需要的朋友可以参考一下
    2013-05-05
  • 详解Flutter TabLayout 布局用法

    详解Flutter TabLayout 布局用法

    Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。这篇文章主要介绍了Flutter TabLayout 布局用法,需要的朋友可以参考下
    2019-07-07
  • Java 中泛型 T 和 ? 的区别详解

    Java 中泛型 T 和 ? 的区别详解

    本文主要介绍了Java 中泛型 T 和 ? 的区别,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • Java并发编程示例(五):线程休眠与恢复

    Java并发编程示例(五):线程休眠与恢复

    这篇文章主要介绍了Java并发编程示例(五):线程休眠与恢复,在本节,我们将开发一个程序,使用sleep()方法来实现每秒钟打印一次当前时间,需要的朋友可以参考下
    2014-12-12
  • 详细讲解Java中==与equals的区别对比

    详细讲解Java中==与equals的区别对比

    这篇文章主要为大家详细介绍了Java中==与equals的区别对比,文中有详细的代码示例供大家参考,具有一定的参考价值,感兴趣的同学可以参考阅读下
    2023-09-09

最新评论