优雅编程(四)——热部署

优雅编程(四)——热部署

引子

在开发SpringBoot的Web应用时,经常需要的重启Web服务器才能使最新修改的代码、配置文件、静态文件生效,这样就不够“优雅”了。想要改变这种情况也并不繁琐,需要我们加入“热部署”的支持,就可以在不重启Web服务器的情况下保证各项文件的修改立即生效。

正文

在IDEA中开发SpringBoot应用时,如果想加入热部署的加持,可以使用spring-boot-devtools来完成:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <scope>runtime</scope>
    <optional>true</optional>
</dependency>

spring-boot-devtools会监听classpath下的文件变动,变动保存生效,其就会立即重启应用。

设置IDEA环境自动编译,首先开启设置中的项目自动编译选项:

QiSQTH.md.png

然后Find Action,找到Registry…打开,找到并勾选compiler.automake.allow.when.app.running:

QiSM0e.md.png

其实,完成上述步骤后,热部署就已经默认开启了。测试一下:

启动应用,去浏览器中请求一下/hello:

QiFJpj.png

然后去加一个Controller方法:

@RestController
public class Controller {
    public String hello(String temp){
        return "hello";
    }
}

稍等片刻,控制台就有重启应用的相关日志:

QiF3tg.md.png

重新发起请求:

QiF8hQ.png


此时的效果是只要我们修改了编辑区的源代码,保存之后,应用程序便会自动重启让修改生效。

可以在application.properties中自定义热部署的配置:

#热部署生效,默认为true开启
spring.devtools.restart.enabled=true
#监听某个静态文件夹下文件的变化(如html文件),当其下面的文件改变的时候能够重新启动SpringBoot
spring.devtools.restart.additional-paths=src/main/resources/templates
#classpath目录下的WEB-INF文件夹内容修改不重启
spring.devtools.restart.exclude=WEB-INF/**
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值