写在前面
Spring为开发者提供了一个名为spring-boot-devtools的模块来使Spring Boot应用支持热部署,提高开发者的开发效率,无需手动重启Spring Boot应用。
devtools的原理
深层原理是使用了两个ClassLoader,一个Classloader加载那些不会改变的类(第三方Jar包),另一个ClassLoader加载会更改的类,称为restart ClassLoader,这样在有代码更改的时候,原来的restart ClassLoader 被丢弃,重新创建一个restart ClassLoader,由于需要加载的类相比较少,所以实现了较快的重启时间。
配置devtools
首先,我们在pom.xml
添加spring-boot-devtools
依赖。
- 1
- 2
- 3
- 4
- 5
接着,修改我们之前的pom.xml
:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
此时,重新启动应用,修改代码进行测试。
测试
- 修改类–>保存:应用会重启
- 修改配置文件–>保存:应用会重启
- 修改页面–>保存:应用不会重启,但会重新加载,页面会刷新(原理是将spring.thymeleaf.cache设为false,参考:Spring Boot配置模板引擎)
结语
这样进行简单的配置,就可以实现Spring Boot
的热部署,为之后的开发提高了效率