Spring Boot :热部署

作者: 聪明的奇瑞 | 来源:发表于2018-01-19 16:41 被阅读198次

    概述

    • 开发过程中常常会改动代码,为了查看修改每次都需要重新编译代码运行服务器,这样很影响开发效率
    • 应用启动后会把编译好的Class文件加载的虚拟机中,正常情况下在项目修改了源文件是需要全部重新编译并重新加载(需要重启应用)。而热部署就是监听Class文件的变动,只把发生修改的Class重新加载,而不需要重启应用,使得开发变得简便

    Spring Boot 实现热部署

    方式一(Maven 插件 springloaded)

    在 spring-boot-maven-plugin 插件中添加 springloaded 依赖

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <dependencies>
                    <dependency>
                        <groupId>org.springframework</groupId>
                        <artifactId>springloaded</artifactId>
                        <version>1.2.5.RELEASE</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
    </build>
    

    通过 mvn spring-boot:run 启动应用(直接运行应用无效),修改 controller 中代码后结果会跟着变化

    • 该方式只对 mvn spring-boot:run 这种方式启动应用有效,而对直接运行Application.java启动应用无效
    • 如果使用 Thymeleaf 模板引擎,则需要把模板默认缓存设置为 false
    spring.thymeleaf.cache=false
    

    方式二(依赖 spring-boot-devtools 热部署模块)

    添加依赖

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <optional>true</optional>
        <scope>true</scope>
    </dependency>
    <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <fork>true</fork>
            </configuration>
    </plugin>
    

    修改 controller 代码后结果会跟着变化

    IDEA 配置

    配置项一

    WX20180119-163732@2x.png

    配置项二

    WX20180119-163751@2x.png
    WX20180119-163809@2x.png

    相关文章

      网友评论

        本文标题:Spring Boot :热部署

        本文链接:https://www.haomeiwen.com/subject/lefaoxtx.html