SpringBoot之热部署
作者:互联网
目录
什么是热部署?
在日常开发过程中,我们在对某一功能模块的代码做出调整时,通常需要重启项目来进行效果验证,那么在项目结构比较复杂,以及使用到的第三方jar包很多的时候,那么就需要将所有类再重新加载一遍,这样不但耗费资源,而且降低了开发效率,为解决这样的问题,SpringBoot团队提供了一个热部署插件spring-boot-devtools,
<!-- 引入热部署依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId
</dependency>
在pom.xml文件中引入该插件后,,如果修改了某一个类中的代码,那么就只会重新加载该类所属路径下的类及配置,而不会加载与之无关的类或者一些第三方jar包中的类,这样就大大提高了调试程序的效率。
热部署原理
那么SpringBoot是如何实现的热部署?实际上,在引入了热部署插件之后,就会监控classPath下的资源是否发生变化,若发生变化了,即启动热部署。但是在项目当中,通常存在两种类,一个是我们自定义的类,还有一个是第三方jar包中的类,那么SpringBoot是如何识别当前类是自定义类还是第三方类呢?通过SpringBoot的官方文档,可以发现:
可以发现:SpringBoot是通过两个类加载器来管理项目中的类的,一个是base ClassLoader,它是用来加载不变的类即第三方jar包,还有一个是管理我们自己开发类(如Controller、Service等)的类加载器,称为restart ClassLoader。 那么在修改了我们自己定义的类的时候,restart ClassLoader 就会会对这些类进行重新加载。
标签:插件,SpringBoot,部署,jar,之热,第三方,加载 来源: https://blog.csdn.net/weixin_42679989/article/details/118496614