IDEA 2019配置SpringBoot实现热部署

  • A+
所属分类:后端开发

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

 

一、配置pom.xml

1)加载maven依赖

<!--添加热部署-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <optional>true</optional>
    <scope>true</scope>
</dependency>

optional=true,依赖不会传递,该项目依赖devtools;之后依赖myboot项目的项目如果想要使用devtools,需要重新引入

或者将optional,scope两行换成<scope>runtime</scope>

2)开启热部署

<!--热部署配置-->
<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <!--fork:如果没有该项配置,整个devtools不会起作用-->
        <fork>true</fork>
    </configuration>
</plugin>

 

二、配置IDEA

1)设置IDEA的自动编译:

“File”→“Settings(Ctrl+Alt+S)”→“Build, Execution, Deplyment”→“Compiler”,选中“Build project automatically” 打勾

IDEA 2019配置SpringBoot实现热部署

2)组合键 Shift+Ctrl+Alt+/,选择 Registry ,找到compiler.automake.allow.when.app.running,选中打勾。

(或者CTRL + SHIFT + A --> 查找Registry)

IDEA 2019配置SpringBoot实现热部署

 

三、游览器设置

设置游览器禁用缓存:F12(或Ctrl+Shift+J或Ctrl+Shift+I),打开开发者工具 → NetWork → 勾选Disable Cache

IDEA 2019配置SpringBoot实现热部署

至此配置完成,修改文件后不用重启,刷新页面即可看到效果

 

四、原理

原理是在发现代码有更改之后,重新启动应用,但是速度比手动停止后再启动更快。深层原理是使用了两个ClassLoader,一个Classloader加载那些不会改变的类(第三方Jar包),另一个ClassLoader加载会更改的类,称为restart ClassLoader。这样在有代码更改的时候,原来的restart ClassLoader 被丢弃,重新创建一个restart ClassLoader,由于需要加载的类相比较少,所以实现了较快的重启时间。即devtools会监听classpath下的文件变动,并且会立即重启应用(发生在保存时机)

——摘抄

 

还有一篇相关文章写的也蛮好:点我到达

  • 扫扫关注公众号
  • weinxin
  • 扫扫体验小程序
  • weinxin
亦枫

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:4   其中:访客  3   博主  1

    • avatar 手握日月摘星辰 1

      按照上面的多做了但是没有一点用,很难受

      • avatar 手握日月摘星辰 1

        为什么我的热部署没作用 上面的多做到了还是没一点用

        • avatar 楚狂人 1

          好东西,可提高效率