您的位置:首页 > 编程语言 > Java开发

Spring Boot使用devtools进行热部署

2018-05-31 17:46 246 查看
使用springloaded进行热部署,但是新增变量、方法等...并不会进行热部署。

使用devtools则能解决这些问题,包括新增/删除方法,添加新的类,修改配置文件等一系列操作均能进行热部署。

什么是devtools

spring-boot-devtools:是一个为开发者服务的一个模块,最重要的功能就是自动将应用代码更新到最新的App上去。原理是检测到代码有更改之后,会重新启动服务,但是速度比手动操作更快,这里的更快并不是指手工操作时间。

其深层原理是使用了两个ClassLoader,一个Classloader加载那些不会改变的类(第三方Jar包),另一个ClassLoader加载会更改的类,称为 restart ClassLoader,这样在有代码更改的时候,原来的restart ClassLoader 被丢弃,重新创建一个restart ClassLoader,由于需要加载的类相比较少,所以实现了较快的重启时间(5秒以内)。

修改pom.xml文件

添加spring-boot-devtools 依赖包

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


添加spring-boot-devtools plugin

<!-- 构建节点 -->
<build>
<plugins>
<!-- 添加spring-boot-devtools plugin -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
</configuration>
</plugin>
</plugins>
</build>

配置好之后启动服务,可以测试新增/修改/删除方法或者修改配置文件和新增类进行测试,然后使用页面进行访问验证,每一次保存都会自动重启服务。

spring-boot-devtools会监听classpath下的文件变动,保存之后会立即重启应用,因为采用的虚拟机机制,该项重启是非常快的。

spring-boot-devtools可以实现页面热部署,页面修改后立即生效,可以直接在application.properties文件中配置spring.thymeleaf.cache=false来实现(不同的模板配置不一样)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Spring Boot
相关文章推荐