Spring Boot使用devtools进行热部署
2018-05-31 17:46
246 查看
使用springloaded进行热部署,但是新增变量、方法等...并不会进行热部署。
使用devtools则能解决这些问题,包括新增/删除方法,添加新的类,修改配置文件等一系列操作均能进行热部署。
其深层原理是使用了两个ClassLoader,一个Classloader加载那些不会改变的类(第三方Jar包),另一个ClassLoader加载会更改的类,称为 restart ClassLoader,这样在有代码更改的时候,原来的restart ClassLoader 被丢弃,重新创建一个restart ClassLoader,由于需要加载的类相比较少,所以实现了较快的重启时间(5秒以内)。
添加spring-boot-devtools plugin
配置好之后启动服务,可以测试新增/修改/删除方法或者修改配置文件和新增类进行测试,然后使用页面进行访问验证,每一次保存都会自动重启服务。
spring-boot-devtools会监听classpath下的文件变动,保存之后会立即重启应用,因为采用的虚拟机机制,该项重启是非常快的。
spring-boot-devtools可以实现页面热部署,页面修改后立即生效,可以直接在application.properties文件中配置spring.thymeleaf.cache=false来实现(不同的模板配置不一样)。
使用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项目中使用spring-boot-devtools模块进行代码热部署,避免重新启动web项目
- spring boot项目中使用spring-boot-devtools模块进行代码热部署,避免重新启动web项目
- Spring Boot (教程三:使用devtools实现热部署 )
- spring boot项目中使用spring-boot-devtools模块进行代码热部署,避免重新启动web项目
- spring boot项目中使用spring-boot-devtools模块进行代码热部署,避免重新启动web项目
- Springboot使用devTools进行热部署
- SpringBoot学习:使用spring-boot-devtools进行热部署
- spring boot项目中使用spring-boot-devtools模块进行代码热部署,避免重新启动web项目
- maven工程使用spring-boot-devtools进行热部署,更改代码避免重启web容器
- spring boot项目中使用spring-boot-devtools模块进行代码热部署,避免重新启动web项目
- spring boot项目中使用spring-boot-devtools模块进行代码热部署,避免重新启动web项目
- spring boot项目中使用spring-boot-devtools模块进行代码热部署,避免重新启动web项目
- spring boot项目中使用spring-boot-devtools模块进行代码热部署,避免重新启动web项目
- spring boot项目中使用spring-boot-devtools模块进行代码热部署,避免重新启动web项目
- spring boot项目中使用spring-boot-devtools模块进行代码热部署,避免重新启动web项目
- spring boot项目中使用spring-boot-devtools模块进行代码热部署,避免重新启动web项目
- spring boot项目中使用spring-boot-devtools模块进行代码热部署,避免重新启动web项目
- 使用SpringBoot的DevTools进行热部署
- spring boot项目中使用spring-boot-devtools模块进行代码热部署,避免重新启动web项目
- spring boot项目中使用spring-boot-devtools模块进行代码热部署,避免重新启动web项目