Spring Boot热部署

  spring-boot-devtools是为开发者服务的一个模块,其中最重要的功能是自动应用代码更新到App上面去。

一、热部署原理

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

二、热部署实现方式

1.增加maven依赖

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

2.开启热部署

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <fork>true</fork>//该配置依据idea环境非必须
            </configuration>
        </plugin>
    </plugins>
</build>

三、在idea中额外配置

1.ctrl+shift+A→查找make project automatically→选择

111.png

2.ctrl+shift+A→查找Registry→选择compiler.automake.allow.when.app.running

3.重启idea

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 本地开发过程中,一个小小的功能变化,测试的时候,都需要重启应用,这样启动项目的时间,可能比改动需要的时间还多,sp...
    时之令阅读 653评论 0 1
  • devtools的原理 深层原理是使用了两个ClassLoader,一个Classloader加载那些不会改变的类...
    皮多堡阅读 474评论 0 5
  • 相信做开发的程序猿们都体验过修改一次代码就要重启一次的滋味吧简直不要太爽,也比较影响工作效率,本来热部署准备后面介...
    意浅离殇阅读 639评论 0 0
  • 在开发阶段,每次修改代码,总要重启等待代码部署发布,才能测试。这样对每个程序员来说都很头疼,那么今天就来看看Spr...
    我弟是个程序员阅读 582评论 0 2
  • 我越来越不会写诗 写诗很难 就象岩石上绣花 我不懂什么叫诗 人都说诗是语言精华 写诗贵在含蓄 我却把诗写成 又直又...
    秋AldrichB果阅读 493评论 7 8

友情链接更多精彩内容