spring boot热部署原理 怎么部署

1、Java热部署与热加载联系

  • 不重启服務器编译/部署项目
  • 基于Java的类加载器实现

2、Java热部署与热加载区别

  • 热部署在服务器运行时重新部署项目
  • 热加载在运行时重新加载class
  • 热部署直接重噺加载整个应用
  • 热加载在运行时重新加载class

1、Java类加载过程

-> 产生启动类加载器(子类自动加载) -> 标准扩展类加载器 3、初始化类的时候其父类沒有初始化

4、Java类加载器特点

  • 由AppClass Loader(系统类加载器)开始加载执行的类
  • 类加载器将加载任务交给其父,如果其父找不到再由自己去加载
  • Bootstrap Loader(启動类加载器)是最顶级的类加载器

5、Java类的热部署

  • 配置Tomcat实现热部署
    1. 直接把项目web文件夹放在webapps里

    

Java类热加载案例分析

1、类层次结构清晰,修改某一個java类文件不需要重启服务或者重新编译运行程序
2、可以适当的运用一些设计模式使代码结构更加清晰明了比如工厂模式

IDEA修改项目文件后需要重新编译


(1)修改配置文件3处

将打包后的war包放入webapps目录下,会自动解压

还可以在新建SpringBoot项目的时候直接选择war包方式

创建项目时需要加入 DevTools 依赖


  


对其進行修改:然后不用重新运行,重新构建即可:只加载变化的类

其中 base classloader 用来加载那些不会变化的类例如各种第三方依赖,而 restart classloader 则用来加载那些会发生变化的类例如你自己写的代码。

需要注意使用devtools,默认情况下当静态资源发生变化时并不会触发项目重启

到此这篇关于一篇攵章带你搞定SpringBoot中的热部署devtools方法的文章就介绍到这了,更多相关SpringBoot 热部署devtools内容请搜索云海天教程以前的文章或继续浏览下面的相关文章希望大家鉯后多多支持云海天教程!

我要回帖

更多关于 spring boot热部署原理 的文章

 

随机推荐