Spring Boot 知识笔记(热部署)

 

热部署原理:

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

 官方地址:https://docs.spring.io/spring-boot/docs/2.1.0.BUILD-SNAPSHOT/reference/htmlsingle/#using-boot-devtools

  1、当我们修改了Java类后,IDEA默认是不自动编译的,而spring-boot-devtools又是监测classpath下的文件发生变化才会重启应用,所以需要设置IDEA的自动编译

具体步骤:打开顶部工具栏 File -> Settings -> Default Settings -> Build -> Compiler 然后勾选 Build project automatically 

 

2、pom.xml 增加依赖

    <dependency>  
             <groupId>org.springframework.boot</groupId>  
             <artifactId>spring-boot-devtools</artifactId>  
             <optional>true</optional>  
         </dependency>

3、修改类文件并保存后,spring boot自动重启了

 

4、spring boot默认不监听静态文件的更改,所以静态文件在改动时不会被自动重启

/META-INF/maven, /META-INF/resources, /resources, /static, /public, or /templates

5、在配置文件application.properties中,指定文件不进行热部署

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

6、上面每次修改类文件都会自动重启spring boot,可以通过触发器,手动控制什么时候进行热加载。

 

转载于:https://www.cnblogs.com/Eleven-Liu/p/10914812.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值