zoukankan      html  css  js  c++  java
  • springboot热部署

    1.spring-boot-devtools 实现热部署

    spring-boot-devtools 最重要的功能就是热部署。它会监听 classpath 下的文件变动,并且会立即重启应用。

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

      optional=true 表示依赖不会传递,换句话说,其他依赖该项目的项目,如果想要使用 devtools,需要重新引入

      如果,希望指定文件夹下的文件改变的时候,重新启动 Spring Boot,我们只要在 src/main/resources/application.properties 中配置信息。

    spring.devtools.restart.additional-paths= # Additional paths to watch for changes.

    自定义配置热部署

      以下配置用于自定义配置热部署,可以不设置。

    # 热部署开关,false即不启用热部署
    spring.devtools.restart.enabled: true
    
    # 指定热部署的目录
    #spring.devtools.restart.additional-paths: src/main/java
    
    # 指定目录不更新
    spring.devtools.restart.exclude: test/**

    如果是Intellij Idea,需要改以下两个地方:

    1、勾上自动编译或者手动重新编译

    File > Settings > Compiler-Build Project automatically

    2、注册

    ctrl + shift + alt + / > Registry > 勾选Compiler autoMake allow when app running

    注意事项

    1、生产环境devtools将被禁用,如java -jar方式或者自定义的类加载器等都会识别为生产环境。

    2、打包应用默认不会包含devtools,除非你禁用SpringBoot Maven插件的 excludeDevtools属性。

    3、Thymeleaf无需配置 spring.thymeleaf.cache:false,devtools默认会自动设置,参考完整属性。

    https://github.com/spring-projects/spring-boot/blob/v1.5.7.RELEASE/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/env/DevToolsPropertyDefaultsPostProcessor.java

    4、devtools会在windows资源管理器占用java进程,在开发工具里面杀不掉,只能手动kill掉,不然重启会选成端口重复绑定报错。

    2.Spring Loaded 实现热部署

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

    使用 mvn spring-boot:run 启动项目。

    官方文档:https://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-devtools.html

  • 相关阅读:
    [原]小巧的刀片
    [原]看康震教授讲《卖油翁》有感
    [原]使用可传输表空间修改Schema Name
    [原]ORA00060: Deadlock detected(场景1:单表并发更新)
    [原]使用wget/curl做个“小后门”
    [原]一个空格导致NFS的Readonly
    [转]设计高效SQL: 一种视觉的方法
    [原]6Gb/s SAS 2.0 通道的确不错
    ESX 4/VSphere CentOS 启动时 udev Hang 住
    [摘]终于找到一个有助理解left/right/full outer join的例子
  • 原文地址:https://www.cnblogs.com/zhangmingcheng/p/9335488.html
Copyright © 2011-2022 走看看