zoukankan      html  css  js  c++  java
  • spring boot 热更新,热部署

    近来在使用idea做springboot的项目,但是发现每次修改之后我都需要重新将项目关闭再开启,这样比较繁琐,发现通过热部署的方式让我们可以一边修改我们的项目,然后在页面中直接通过刷新展示出来

    spring为开发者提供了一个名为spring-boot-devtools的模块来使Spring Boot应用支持热部署,提高开发者的开发效率,无需手动重启Spring Boot应用。

    devtools的原理

    深层原理是使用了两个ClassLoader,一个Classloader加载那些不会改变的类(第三方Jar包),另一个ClassLoader加载会更改的类,称为restart ClassLoader,这样在有代码更改的时候,原来的restart ClassLoader 被丢弃,重新创建一个restart ClassLoader,由于需要加载的类相比较少,所以实现了较快的重启时间。

    这里我没有把所有的方式都尝试一遍,只是使用了devtools的方式

    总的来说,一共需要两个步骤:

    第一步、先设置我们的pom.xml文件,加入依赖

    首先是把下面代码在<dependencies>中

    1.  
      <!--添加热部署-->
    2.  
      <dependency>
    3.  
      <groupId>org.springframework.boot</groupId>
    4.  
      <artifactId>spring-boot-devtools</artifactId>
    5.  
      <optional>true</optional>
    6.  
      <scope>true</scope>
    7.  
      </dependency>

    另外下面的代码是放在<build>  下面<plugins>里的

    1.  
      <plugin>
    2.  
      <!--热部署配置-->
    3.  
      <groupId>org.springframework.boot</groupId>
    4.  
      <artifactId>spring-boot-maven-plugin</artifactId>
    5.  
      <configuration>
    6.  
      <!--fork:如果没有该项配置,整个devtools不会起作用-->
    7.  
      <fork>true</fork>
    8.  
      </configuration>
    9.  
      </plugin>

    第二步、设置IDEA的自动编译:

    (1)File-Settings-Compiler勾选 Build Project automatically

    (2)快捷键 ctrl + shift + alt + /,选择Registry,勾上 Compiler autoMake allow when app running

    这样我们的热部署就完成了,可以再我们的项目中修改返回值,或者修改Mapping的value值后,在我们的页面中刷新试试,

    我们的修改已经生效了,不用通过再关闭再开启项目查看了。

    借鉴文章:springboot热部署(二)——springboot热部署与发布SpringBoot配置devtools实现热部署

    欢迎大家学习,交流
  • 相关阅读:
    下载MySQL数据库
    2012开源项目计划-WPF企业级应用整合平台
    WPF入门教程系列(二) 深入剖析WPF Binding的使用方法
    WPF入门教程系列(一) 创建你的第一个WPF项目
    一、什么是WPF?
    asp.net页面间传值的几种方法
    .NET 代码编译过程
    全面认识.NET框架(一)
    C#里partial关键字的作用(转摘)
    .NET概念:.NET程序编译和运行
  • 原文地址:https://www.cnblogs.com/lijintao1025/p/10649576.html
Copyright © 2011-2022 走看看