返回介绍

SpringBoot 热部署配置

发布于 2023-12-26 21:19:41 字数 3903 浏览 0 评论 0 收藏 0

第一步:在pom文件中引入spring-boot-devtools模块

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

第二步:配置spring-boot-maven-plugin插件

<plugins>
    <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <configuration>
            <!--如果没有该配置,devtools不会起作用-->
            <fork>true</fork>
        </configuration>
    </plugin>
</plugins>

配置完成后,我们修改源码或者配置文件项目会自动重启,但这种重启会比手动重启快很多。其深层原理是使用两个ClassLoader,一个ClassLoader加载那些不会改变的类(例如第三方jar包),另一个ClassLoader加载那些会改变的类,称为Restart ClassLoader。这样有代码更改的时候,原来Restart ClassLoader加载的类会被丢弃,而重新加载被更改的类,这样速度就会比手动重启更快。

可能出现的问题

有的小伙伴使用IDEA时配置热部署后仍然不能自动重启服务器,这可能是因为你的IDEA没有配置文件自动编译,如果不配置自动编译,在你按Ctrl+s时就不会重新编译源文件,项目则不会自动重启。

第一步:

如果不勾选该选项,我们也可以手动编译源文件(Ctrl+F9),如果只更改了一个项目,我们可以按Ctrl+Shift+F9,重新编译该类文件,即可触发重启服务。

第二步:按快捷键Ctrl+Shift+Alt+/,选择1.Registry...

第三步:勾选 compiler.automake.allow.when.app.running 即可

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文