请选择 进入手机版 | 继续访问电脑版
本站特色:极好的技术研究氛围!所有技术交流,必有回复!

疯狂Java联盟

 找回密码
 加入联盟
查看: 529|回复: 0

Spring Boot2.0连载(45)-- Spring Boot的热部署

[复制链接]
发表于 2018-6-4 20:25:36 | 显示全部楼层 |阅读模式
更多Spring Boot2.0的知识敬请期待疯狂软件著作《Spring Boot企业应用实战》上市



在项目开发过程中,常常会改动页面数据或者修改数据结构,为了显示改动效果,往往需要重启应用查看改变的效果,否则将不能查看到新增代码的效果,这一过程很多时候是非常浪费时间的,导致开发效率极低。开发热部署可以在改变程序代码的时候,自动实现项目的重新启动和部署,大大提高了开发调试的效率。


spring-boot-devtools 是一个为开发者服务的一个模块,其中最重要的功能就是自动实现把新更新的应用代码更改到最新的App上面去。原理是在发现代码有更改之后,自动重新启动应用,但是速度比手动停止后再启动要更快,其深层原理是使用了两个ClassLoader,一个Classloader加载那些不会改变的类(例如第三方的Jar包依赖),另一个ClassLoader加载会更改的类,称为 Restart ClassLoader,这样在有代码更改的时候,原来的Restart ClassLoader被丢弃,重新创建一个Restart ClassLoader去加载更新的类,由于需要加载的类相比较少,所以实现了较快的重启时间。

在pom.xml文件中增加web开发的启动器配置如下:
  1. <dependency>
  2.     <groupId>org.springframework.boot</groupId>
  3.     <artifactId>spring-boot-starter-web</artifactId>
  4. </dependency>
复制代码


然后添加spring-boot-devtools的依赖配置:
  1. <dependency>
  2.     <groupId>org.springframework.boot</groupId>
  3.     <artifactId>spring-boot-devtools</artifactId>
  4.     <optional>true</optional>
  5.     <scope>true</scope>
  6. </dependency>
复制代码


注意还需要加入spring-boot-maven-plugin:
  1. <build>
  2.     <plugins>
  3.         <plugin>
  4.             <groupId>org.springframework.boot</groupId>
  5.             <artifactId>spring-boot-maven-plugin</artifactId>
  6.             <configuration>
  7.                 <!-- 如果没有该项配置,devtools不会起作用,即应用不会restart -->
  8.                 <fork>true</fork>
  9.             </configuration>
  10.         </plugin>
  11.     </plugins>
  12. </build>
复制代码

读者可以编写Spring Boot项目,运行项目之后,修改Java源代码,无须重启项目,就可以进行功能测试了。



您需要登录后才可以回帖 登录 | 加入联盟

本版积分规则

视频、代码、电子书下载
请关注"疯狂图书"公众号
QQ交流1群: 545923995  未满
微信群请扫二维码
QQ交流1群:
545923995
(未满)

小黑屋|手机版|Archiver|疯狂Java联盟 ( 粤ICP备11094030号 )

GMT+8, 2019-5-20 23:10 , Processed in 0.296909 second(s), 6 queries , File On.

快速回复 返回顶部 返回列表