SpringBoot实现热部署

作者: CodePandaes | 来源:发表于2020-03-09 17:04 被阅读0次

    在实际开发过程中,每次修改后台代码就必须要重启来保证源代码或者配置文件的生效,特别是当下微服务开发火热,动不动同时启动多个微服务,debug一次耗时又费力,现在有了spring-boot-devtools启动器,能在SpringBoot的web开发中实现热部署,以下以IDEA为例其原理就是监听classpath路径下的文件变动,修改代码,立即重启。

    欢迎大家访问 我的Hexo博客

    配置

    1. IDEA中默认是不自动编译的,左上角打开setting设置Build project automatically自动编译功能
    1. ctrl + shift + alt + /,选择Registry,勾上 Compiler autoMake allow when app running
    1. 打开pom.xml引入依赖
    <!--实现工程热部署,修改代码不需要重启服务器-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-devtools</artifactId>
    <!--依赖不会传递,该项目依赖devtools;之后依赖此项目的项目如果想要使用devtools,需要重新引入-->
                <optional>true</optional>
            </dependency>
    <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <configuration>
                        <fork>true</fork> <!-- 如果没有该配置,devtools不会生效 -->
                    </configuration>
                </plugin>
            </plugins>
        </build>
    
    1. 启动项目,控制台确实显示devtools在监听classpath路径下的文件变动
    1. 修改UserController下的代码,发现console确实重启了项目,实现了热部署
    1. devtools也可以单独监控某个文件夹下的文件,如:
      devtools:
        restart:
          additional-paths: src/main/resources/templates/user
    
    1. 默认开启热部署,可打开配置文件设置spring.devtools.restart.enable为false关闭
    spring:
      devtools:
        restart:
          # false: 热部署关闭
          enabled: false
    

    相关文章

      网友评论

        本文标题:SpringBoot实现热部署

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