SpringBoot2.x使用Dev-tool热部署

时间:2021-07-25 01:48:39

SpringBoot2.x使用Dev-tool热部署

  为什么使用热部署?

  当修改某些文件内容如配置文件时,我们需要重新启动服务器,比较麻烦,需要一个工具来进行检测是否修改。热加载可以检测到修改的部分,提高工作效率,只要保存后,即可实现热加载。

简介:介绍什么是热部署,使用springboot结合dev-tool工具,快速加载启动应用

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

核心依赖包:

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-devtools</artifactId>

<optional>true</optional>

</dependency>

添加依赖后,在ide里面重启应用,后续修改后马上可以生效

classloader

不被热部署的文件

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

改代码不重启,通过一个文本去控制

      类似于一个开关,修改代码时不会变化,修改好后,改变tigger.txt中的数值,数值变化,重新加载。

      示例:

      application.properties配置:

 web.images-path=L:/images
spring.resources.static-locations = classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,classpath:/test/,file:${web.upload-path}
#指定某些文件不进行监听,即不会进行热加载devtool(重启后不会监听下面这个文件)
#spring.devtools.restart.exclude=application.properties #通过触发器,去控制什么时候进行热加载部署新的文件
spring.devtools.restart.trigger-file=trigger.txt

      在src/main/resources下创建一个tigger.txt(通过创建file)

      version=1,修改文件后,需要重新加载,改变version的值,如version=2,然后系统进行热部署

https://docs.spring.io/spring-boot/docs/2.1.0.BUILD-SNAPSHOT/reference/htmlsingle/#using-boot-devtools-restart-exclude

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

官方地址:https://docs.spring.io/spring-boot/docs/2.1.0.BUILD-SNAPSHOT/reference/htmlsingle/#using-boot-devtools核心依赖包:<dependency>       <groupId>org.springframework.boot</groupId>       <artifactId>spring-boot-devtools</artifactId>       <optional>true</optional>   </dependency>添加依赖后,在ide里面重启应用,后续修改后马上可以生效