进行 SpringBoot 的 Web 开发过程中,我们很多时候经常需要重启 Web 服务器才能保证修改的 源代码文件、或者一些诸如 xml 的配置文件、以及一些静态文件生效,这样耗时又低效。所谓的热部署指的是我们不需要重启 Web Server 就可以保证各项文件修改的立即生效。下面便来介绍一下在 IDEA 中进行 SpringBoot 的 Web 开发时如何加入热部署的支持。
这里我们是使用 spring-boot-devtools
来帮助完成这个事情,其是一个为开发者服务的模块,可以实现 SpringBoot 热部署。其机理就是 spring-boot-devtools
会监听 classpath 下的文件变动,变动保存生效,其就会立即重启应用。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
</dependency>
首先在编译器选项中选中自动编译工程的选项,如下图所示,
接下来我们利用快捷键:Command + Shift + Alt + / 来调出 Registry 窗口,然后勾选其中的编译器自动编译选项,如下图所示:
上面几个步骤设置完成以后,我们去项目的根目录下执行命令来启动 SpringBoot 应用:
mvn clean spring-boot:run
此时的效果是只要我们修改了编辑区的源代码,保存之后,应用程序便会自动重启让修改生效。
上面我们是修改源代码时的自动热启动,除此之外,我们还可以设置 spring-boot-devtools
来监听某个文件夹的变化,比如我们想监听某个静态文件夹下文件的变化(如 html 文件),当其下面的文件改变的时候能够重新启动 SpringBoot,那么我们只要在配置文件 application.properties
中添加如下配置即可:
spring.devtools.restart.additional-paths = src/main/resources/templates
随后再次实验,取得的效果和之前一样,热启动便生效了
作者更多的 SpringBt 实践文章在此:
如果有兴趣,也可以抽点时间看看作者一些关于容器化、微服务化方面的文章:
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.