天天看点

springboot自学之路-08(springboot的热部署)spring-boot-devtools

除了可以使用jrebel来实现热部署,还可以使用spring-boot的spring-boot-devtools来实现热部署。

1.在pom文件中引入依赖

<!--springboot 的热部署工具 begin-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
			<optional>true</optional>
		</dependency>
		<!--springboot 的热部署工具 end-->
           

原理:springboot的重启是reload重启,通过监控classpath的变化,如果classpath下的文件发生变化,则触发重启。springboot通过2个classpath来触发重启,一个baseclassloader中加载不变的类,一个restart classloader中加载classpath中的类,重启的时候,重启classloader中的类丢弃并重新加载。所以springboot的重启会比冷启动快很多。

2.修改类文件或者静态资源后必须点击编译才可以触发springboot自动重启

springboot自学之路-08(springboot的热部署)spring-boot-devtools

3.排除资源

可以在application.properties中添加以下配置

#springboot的热部署
#禁用自动重启
#spring.devtools.restart.enabled=false
#排除哪些资源,这些资源修改并编译后不会自动重启
spring.devtools.restart.exclude=static/**,templates/**
##处理默认配置排除之外的
spring.devtools.restart.additional-exclude=public/**
#
##使用triggerfile重启策略(注意这个文件不要放到default-execlude文件夹下)
#spring.devtools.restart.trigger-file=trigger.file
           

继续阅读