0
点赞
收藏
分享

微信扫一扫

从零开始学springboot笔记(四)-Spring boot之热部署之Springbootdevtools(工作中使用)

zhyuzh3d 2022-07-27 阅读 112

从零开始学springboot笔记(四)-Spring boot之热部署之Springbootdevtools(工作中使用)_热部署

 

一、添加devtools依赖包

<!-- springbootdevtools依赖包 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
<scope>true</scope>
</dependency>

二、添加maven-plugin配置

<build>
<plugins>
<!-- springloaded配置
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin </artifactId>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>springloaded</artifactId>
<version>1.2.4.RELEASE</version>
</dependency>
</dependencies>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<classifier>exec</classifier>
</configuration>
</execution>
</executions>
</plugin>
-->

<!--添加spring-boot-maven-plugin: -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!--fork : 如果没有该项配置,肯呢个devtools不会起作用,即应用不会restart -->
<fork>true</fork>
</configuration>
</plugin>
</plugins>
</build>

这样就可以测试了,

说明:

1. devtools会监听classpath下的文件变动,并且会立即重启应用(发生在保存时机),注意:因为其采用的虚拟机机制,该项重启是很快的。
2. devtools可以实现页面热部署(即页面修改后会立即生效,这个可以直接在application.properties文件中配置spring.thymeleaf.cache=false来实现(这里注意不同的模板配置不一样)

测试方面:

修改类-->保存:应用会重启
修改配置文件-->保存:应用会重启
修改页面-->保存:应用会重启,页面会刷新(原理是将spring.thymeleaf.cache设为false)

新增类-->应用重启

如果不能使用,请参考以下原因:

对应的spring-boot版本是否正确,这里使用的是1.4.1版本;
是否加入plugin以及属性<fork>true</fork>
Eclipse Project 是否开启了Build Automatically(我自己就在这里栽了坑,不知道为什么我的工具什么时候关闭了自动编译的功能)。
如果设置SpringApplication.setRegisterShutdownHook(false),则自动重启将不起作用。

修改了方法的返回值,是能够进行热部署的;
重新创建了一个方法,是能够进行热部署的;
重新创建了一个Class,是能够进行热部署的



举报

相关推荐

0 条评论