SpringBoot学习17:springboot热部署配置

Posted 天涯浪子心

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot学习17:springboot热部署配置相关的知识,希望对你有一定的参考价值。

spring为开发者提供了一个名为spring-boot-devtools的模块来使Spring Boot应用支持热部署,提高开发者的开发效率,无需手动重启Spring Boot应用。

devtools的原理

深层原理是使用了两个ClassLoader,一个Classloader加载那些不会改变的类(第三方Jar包),另一个ClassLoader加载会更改的类,称为restart ClassLoader,这样在有代码更改的时候,原来的restart ClassLoader 被丢弃,重新创建一个restart ClassLoader,由于需要加载的类相比较少,所以实现了较快的重启时间。

 

在pom.xml文件中添加devtools依赖

<dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-devtools</artifactId>
      <optional>true</optional><!--当其他项目继承该项目时,该坐标不会被继承-->
</dependency>

Eclipse默认自动编译,而idea默认手动编译,因此idea需要修改两个参数以达到任意时间自动编译的目的。

首先,File->setting->搜索compiler->将Make project automatically打勾(注意后面only works not running/debugging,所以我们要实现热部署就必须打破这个限制,于是乎有了下面设置)

然后,CTRL+ALT+SHIFT+/ 组合键打开 Maintenance窗口选择Registry... ,找到compiler.automake.allow.when.app.running选项,打勾开启运行时编译功能(找了半天才发现是按字母排序的)

以上是关于SpringBoot学习17:springboot热部署配置的主要内容,如果未能解决你的问题,请参考以下文章

IDEA从零到精通(17)之IDEA中用Maven创建springboot项目

SpringBoot(17)---SpringBoot整合RocketMQ

springboot-17-springboot的文件上传和下载

springboot集成elasticsearch7.17.3

17.Springboot中的Aop编程

SpringBoot图文教程17—上手就会 RestTemplate 使用指南「Get Post」「设置请求头」