SpringBoot通过配置devtools实现热部署

一.springloader和devtools的区别

SpringLoader DevTools 的区别:
SpringLoader SpringLoader 在部署项目时使用的是热部署的方式,只对后端java的claass文件起作用。太麻烦,了解即可
DevTools DevTools 在部署项目时使用的是重新部署的方式

二.pom配置

      
        
            org.springframework.boot
            spring-boot-devtools
            true
        

三.开启自动配置功能 

3.1 开启自动配置功能

SpringBoot通过配置devtools实现热部署_第1张图片

 1.Intellij IEDA 使用ctrl+shift+alt+/ 快捷键搜索Registry,选择搜索出来的第一个

SpringBoot通过配置devtools实现热部署_第2张图片

SpringBoot通过配置devtools实现热部署_第3张图片

3.2  在controller等后端代码进行修改

1.修改前:

SpringBoot通过配置devtools实现热部署_第4张图片

2.修改后:

SpringBoot通过配置devtools实现热部署_第5张图片

3.可以看到后台日志进行了重新启动:

SpringBoot通过配置devtools实现热部署_第6张图片

 此时重新启动项目,重启idea,即可实现热部署,改动任意代码会立即生效,不用再每次重新启动项目  

3.3  application配置文件

SpringBoot通过配置devtools实现热部署_第7张图片

修改之后:服务自动进行了重启,进行了热部署

SpringBoot通过配置devtools实现热部署_第8张图片

3.4 在templates下进行页面的修改

1.修改前

SpringBoot通过配置devtools实现热部署_第9张图片

SpringBoot通过配置devtools实现热部署_第10张图片

修改成:

SpringBoot通过配置devtools实现热部署_第11张图片

页面重新访问:通过不停的刷新,还是没有变动

总结: 

不被热部署的文件
         1、/META-INF/maven, /META-INF/resources, /resources, /static, /public, or /templates
         2、指定文件不进行热部署 spring.devtools.restart.exclude=static/**,public/**
         3、手工触发重启 spring.devtools.restart.trigger-file=trigger.txt
             改代码不重启,通过一个文本去控制

注意点:生产环境不要开启这个功能,如果用java -jar启动,springBoot是不会进行热部署的

3.5 解决热部署时可以访问静态文件

1.在配置文件中配置:

spring.devtools.restart.trigger-file=trigger.txt

SpringBoot通过配置devtools实现热部署_第12张图片

2.在trigger.txt中配置

里面的值动态改变

version=4

3.修改前:

SpringBoot通过配置devtools实现热部署_第13张图片

SpringBoot通过配置devtools实现热部署_第14张图片

修改后:

SpringBoot通过配置devtools实现热部署_第15张图片

修改trigger中version的版本:

SpringBoot通过配置devtools实现热部署_第16张图片

SpringBoot通过配置devtools实现热部署_第17张图片

可以看到访问网页:进行了热部署更新 

SpringBoot通过配置devtools实现热部署_第18张图片

你可能感兴趣的:(springboot,spring,boot,java,spring)