SpringBoot热部署使用

SpringBoot热部署使用_第1张图片

devtools的原理

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

引入

  
        org.springframework.boot
        spring-boot-devtools
        true 
    
    
        org.springframework.boot
        spring-boot-maven-plugin
        
            true 
        
    

IDEA配置

  • 1) “File” -> “Settings” -> “Build,Execution,Deplyment” -> “Compiler”,选中打勾 “Build project automatically” 。

  • 2) 组合键:“Shift+Ctrl+Alt+/” ,选择 “Registry” ,选中打勾 “compiler.automake.allow.when.app.running”

Chrome禁用缓存

F12或者"Ctrl+Shift+I",打开开发者工具,"Network" 选项卡下 选中打勾 "Disable Cache(while DevTools is open)"

测试

  • 修改类–>保存:应用会重启
  • 修改配置文件–>保存:应用会重启
  • 修改页面–>保存:应用不会重启,但会重新加载,页面会刷新(原理是将spring.thymeleaf.cache设为false,参考:Spring Boot配置模板引擎)

SpringBoot热部署使用_第2张图片

但是重启速度回很快

你可能感兴趣的:(SpringBoot热部署使用)