实际开发过程中, 经常会修改代码重启应用, 每次手动重启既麻烦开发效率又低, 所以热部署对于开发来说显得十分必要, 本文将介绍如何在 IntelliJ IDEA(版本 2018.2.5) 中实现 SpringBoot 项目热部署.
本文使用 spring-boot-devtools 实现的热部署, 按照下面两个步骤操作完成即可.
1. 修改 pom.xml
spring-boot-devtools 是一个为开发者服务的一个模块, 其中最重要的功能就是热部署. 原理是在发现代码有更改之后, 重新启动应用, 但是速度比手动停止后再启动更快. 其深层原理是使用了两个 ClassLoader, 一个 Classloader 加载那些不会改变的类 (第三方 Jar 包), 另一个 ClassLoader 加载会更改的类, 称为 restart ClassLoader, 这样在有代码更改的时候, 原来的 restart ClassLoader 被丢弃, 重新创建一个 restart ClassLoader, 由于需要加载的类相比较少, 所以实现了较快的重启时间. 即 devtools 会监听 classpath 下的文件变动, 并且会立即重启应用 (发生在保存时机)
配置 spring-boot-devtools 后具体 pom.xml 文件内容如下:
- org.springframework.boot
- spring-boot-starter-web
- org.springframework.boot
- spring-boot-starter-test
- test
- <!-- 引入热部署 jar 包 -->
- org.springframework.boot
- spring-boot-devtools
- <!-- optional=true, 依赖不会传递, 该项目依赖 devtools; 之后依赖该项目的项目如果想要使用 devtools, 需要重新引入 -->
- true
- <!-- 引入热部署依赖插件 -->
- org.springframework.boot
- spring-boot-maven-plugin
- <!-- IntelliJ IDEA 本地测试去掉 fork 也生效 -->
- true
2. 开启 idea 自动编译及 automake 功能
(1). Settings --> Compile --> Build project automatically --> 勾选
idea 设置自动编译截图
(2). CTRL + SHIFT + ALT + / --> 查找 Registry --> 找到并勾选 compiler.automake.allow.when.App.running
idea 设置 compile.automake 截图
上面两个步骤搞定后, 即可在 IntelliJ IDEA 中实现热启动, 有任何问题欢迎留言沟通哦~
温馨提示: 开启 idea 自动编译及 automake 功能后一定要重启 IntelliJ IDEA
下面的是我的公众号二维码图片, 欢迎关注, 欢迎留言, 一起学习, 一起进步.
Java 碎碎念公众号
来源: http://www.bubuko.com/infodetail-2955935.html