springboot提供了热部署,所谓热部署就是当你修改了文件代码,不用重新去启动服务器,而你只要重新build一下当前项目就可以重新编译了。而这就是热部署。
其实springboot热部署就是通过一个jar包依赖实现的,它就是一个工具,只需要在pom文件中添加一个依赖就可实现。
添加如下依赖:
<!-- springbooo热部署插件-->
<!-- 热部署插件的原理:主要有两个类加载器:base classloader 和restart classloader
base classloader用于加载那些不会变化的类,例如各种第三方依赖,
而restart classloader用来加载那些变化的类,例如你修改了的类。
springboot中热部署的原理:当代码发生了变化时,base classloader不变,restart classloader被废弃了,被另一个restart classloader替代了。
在整个过程中只是加载了变化了的类而不是全部重新加载,所以速度会更快。
devtools中默认嵌入了livereload服务器,利用它可以实现静态资源的热部署。
LiveReload可以在静态资源发生变化时自动触发浏览器更新,
LiveReload支持Chrome,Firefox以及Safari。
它就是一个插件只需要在Chrome浏览器或者Firefox浏览器添加一个插件就可以了。
LiveReload是和浏览器的选项卡绑定在一起的,在哪个选项卡打开就在哪个选项卡生效。
如果安装并且启动了LiveReload插件但是又不想使用则可以在springboot配置文件中添加
spring.devtools.livereload.enabled=false即可关闭静态资源的热部署加载。
-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<version>2.1.3.RELEASE</version>
<scope>runtime</scope>
<optional>true</optional>
</dependency>