zoukankan      html  css  js  c++  java
  • SpringBoot 整合 devtools 实现热部署

    来源:https://www.cnblogs.com/rcddup/p/7533125.html

    一、添加 devtools 依赖

            <!-- Spring boot 热部署 : 此热部署会遇到 java.lang.ClassCastException 异常 -->
            <!-- optional=true,依赖不会传递,该项目依赖devtools;之后依赖myboot项目的项目如果想要使用devtools,需要重新引入 -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-devtools</artifactId>
                <optional>true</optional>
            </dependency>

      当配置了 devtools 后,我们在 classpath 修改任何文件项目都将会自动重启。

      (1)某些资源在更改时不一定需要触发重新启动。例如, Thymeleaf 模板可以就地进行编辑。默认情况下更改资源路径包括了:/META-INF/maven/META-INF/resources ,/resources ,/static ,/public 或者 /templates 不会触发重新启动, 但会触发实时重新加载。

    如果逆向排除这些路径,可以使用如下配置:

      spring.devtools.restart.exclude=static/**,public/**

      (2)如果要保留这些默认值并添加其他排除项, 请使用 spring.devtools.restart.additional-exclude 属性代替。

      (3)通过 System.setProperty("spring.devtools.restart.enabled", "false"); 方法,可以在 SpringApplication.run() 方法运行天使用关闭 devtools。

      (4)当我们再次启动 App.java 的时候,使用的加载器就变为了 restartedMain 了,说明热部署已经成功。

       注意点:devtools 由于是双类加载机制,再结合了通用 Mapper 后可能会出现 java.lang.ClassCastException 异常 (例如:说class x.x.A cannot be cast to x.x.A。)。

      解决方案就如下:

      在 src/main/resources 中创建 META-INF 目录,在此目录下添加 spring-devtools.properties 配置,内容如下:

      restart.include.mapper=/mapper-[\w-\.]+jar
      restart.include.pagehelper=/pagehelper-[\w-\.]+jar
  • 相关阅读:
    jQueryrocket
    jQueryrocket
    jQueryrocket
    jQueryrocket
    jQueryrocket
    SharePoint 2013 Workflow Manager 1.0 卸载
    SharePoint 2013 Workflow Manager 1.0 远程服务器返回错误: (400) 错误的请求。 不支持查询字符串中的 api-version
    SharePoint 2010 使用Install-SPSolution部署wsp包状态一直是”正在部署”
    SharePoint 2010管理中心服务器提示“需要升级”
    SharePoint 2010:“&”作为SharePoint账号密码引起的错误
  • 原文地址:https://www.cnblogs.com/lshan/p/10608108.html
Copyright © 2011-2022 走看看