[有书共读16]第五章-热部署

热部署

表面上:就是你引用spring-boot-devtools后,会自动侦测到你的代码变化,重启服务器。但是这个过程会比你手工重启服务器要快得多得多得多……。

深层实现原理:通过两个ClassLoader,一个用来加载相对固定的classes(static class loader),一个用来加载你开发中的classes(restart ClassLoader)。

graph TD
A(热部署)-->|外部jar包|B[static class loader]
A-->|你的java代码|C[restart ClassLoader]
B-->D[你的代码有变化这个不用重新创建]
C-->E(你的代码变了后会重启restart ClassLoader)

在pom文件中添加依赖

<!-- Spring Boot spring-boot-devtools 依赖 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <optional>true</optional>
        <scope>true</scope>
    </dependency>

添加maven plugins

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

以上代码写完后,就可以随意编辑代码测试啦。

书中代码:devtoolstest

如果想让前端模板也热部署,则需要在application.properties中加入:

 spring.thymeleaf.***=false

如果发现你的Eclipse不能热部署,那么检查你的自动编译是否打开喽。

Build Automatically
全部评论

相关推荐

2025-12-15 14:25
云南大学 Java
lei22:入职可能会看学信网,最好别伪装,这个简历找实习肯定是够的,肯定会有收 28 届实习生的公司的,多投就行
点赞 评论 收藏
分享
01-29 15:45
已编辑
华中科技大学 前端工程师
COLORSN:可以试一下,小厂看技术栈是不是很落后,如果太拉胯就别去,个人认为有实习氛围比你自己琢磨要高效不少,然后就是小厂其实也有可能会问的很难,这都比较难说,还是看自己项目含金量够不够,寒假还能不能推进学习再选择,毕竟去实习过年就10天假了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务