Spring Boot学习之旅:(三)springboot热部署
来源:互联网 发布:宁波行知实验小学网站 编辑:程序博客网 时间:2024/06/05 09:58
相信做开发的程序猿们都体验过修改一次代码就要重启一次的滋味吧简直不要太爽,也比较影响工作效率,本来热部署准备后面介绍的但是为了方便就先讲了把。本文主要介绍两种方法配置热部署,下面请听细细道来。
一springloaded plugin
第一种方式通过springloaded plugin 插件的方式 在pom.xml 中添加如下节点
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <dependencies> <!-- springload hot deploy --> <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> </plugins> </build>
添加完成后使用spring-boot:run的方式启动如下图。
便可以启动项目但是测试一下热部署 发现可以 具体可以下载我的代码下来实验 接下来把项目关闭再次启动发现出问题了端口占用,通过这种方式配置的热部署 用spring-boot:run 的启动方式运行工程, 关闭时不会关闭后台进程。通过第二种方式启动将springloaded-1.2.4.RELEASE.jar下载下来放到任意文件夹 文件夹下 然后将eclipce run VM参数参数设置为-javaagent:H:\m2\repository\org\springframework\springloaded\1.2.4.RELEASE\springloaded-1.2.4.RELEASE.jar -noverify 这样通过run as 启动时也能热部署
关闭后端口是可以关闭的没有出现上一种方法的问题但是测试的时候又发现了一个问题 修改一个方法的时候能够生效,但是添加一个方法的时候就没有效果了这个就尴尬了下面介绍第二种方法。
二spring-boot- devtools
将上述的插件注视掉 在pom.xml中添加依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> <scope>true</scope> </dependency>
添加相应的插件
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <fork>true</fork> </configuration> </plugin>
启动项目测试 :
1重新启动端口是否能被关闭
2修改一个方法能否热部署
3添加一个方法能否热部署
4添加一个类能否热部署
5修改配置文件能否热部署
发现都是成功的。由此热部署便配置好了
其原理是使用了两个classLoader ,一个是Classloader加载那些不会改变的类如第三方jar ,另一个ClassLoader加载那些会改变的类成为restart ClassLoader ,这样有代码更改的时候原来的,restart ClassLoader 在创建一个新的restart ClassLoader 加载的类相对较少所以启动比较快,便达到热部署的效果。
文章地址 http://www.haha174.top/article/details/252133
项目源码 https://github.com/haha174/boot.git
- Spring Boot学习之旅:(三)springboot热部署
- SpringBoot学习:使用spring-boot-devtools进行热部署
- SpringBoot学习:使用spring-boot-devtools进行热部署
- spring boot入门(三) 热部署
- Spring Boot (三) 热部署
- 40. springboot + devtools(热部署)【从零开始学Spring Boot】
- 40. springboot + devtools(热部署)【从零开始学Spring Boot】
- Spring Boot热部署—SpringBoot + Devtools
- (6)学习SpringBoot之 热部署
- Spring Boot学习--热部署
- spring boot 学习 热部署
- spring boot之热部署
- spring boot 之热部署
- spring boot 学习笔记(05)——热部署 之spring-boot-devtools
- Spring Boot 三 热部署 devtools
- SpringBoot学习:maven使用spring-boot-devtools和springloaded进行热部署
- SpringBoot系列之二intelliJ idea 配置Spring boot 热部署
- SpringBoot:使用spring-boot-devtools进行热部署
- ngrok集成在本地Node.js项目服务器,实现F5调试即可自动打开浏览器且通过外网可访问本地服务器。
- OpenWrt源码分析之ubus
- 正向代理和反向代理
- 解决项目 is already locked , SVN更新提交不了
- 【OpenCV】访问Mat中每个像素的值(新)
- Spring Boot学习之旅:(三)springboot热部署
- markDown的一些思路
- 9.26学习报告
- ARKit框架学习
- hdu1032 The 3n + 1 problem
- java中常量和变量
- 拷贝构造
- post请求上传文件和文本时http格式
- Linux基础入门(六) --学习笔记-正则表达式