Spring Boot项目实现热部署

邵奈一来了 2021-07-20 04:21:01
Spring Boot Spring Boot教程


大家好,我是邵奈一,一个不务正业的程序猿、正儿八经的斜杠青年。
1、世人称我为:被代码耽误的诗人、没天赋的书法家、五音不全的歌手、专业跑龙套演员、不合格的运动员…
2、这几年,我整理了很多IT技术相关的教程给大家,主要是大数据教程,帮助了很多小伙伴入坑大数据行业。
3、如果您觉得文章有用,请收藏,转发,评论,并关注我,谢谢!
博客导航跳转(请收藏):邵奈一的技术博客导航
| 公众号 | 微信 | 微博 | CSDN | 简书 |


0x00 教程内容
  1. 热部署相关概念
  2. 热部署配置
0x01 热部署相关概念

(1)什么是热部署?

热部署,就是在应用正在运行的时候升级软件,却不需要重新启动应用。(来自百度百科的定义)

(2)什么是 SpringBoot 热部署?

SpringBoot 热部署就是在项目正在运行的时候修改代码,而不需要重新启动项目。

(3)为什么需要热部署?

众所周知,我们在开发Java Web工程的时候,每次修改了类文件,每次都要重新启动,重新发布才能够观察效果,不仅时间很慢而且还非常繁琐,真心不喜欢,其实关于热部署的插件,一直都有,比如JRebel,自己也可以尝试去搜一些资料来配置一下。而本文,是针对Spring Boot项目的热部署,非常简单,看了本文,你会点赞的!

0x02 热部署配置
1. 配置步骤

1、导入热部署依赖
2、引入相关插件
3、加入相关配置
4、开启IDEA中的自动编译选项
5、开启Springboot主类热更新

(1)在pom.xml文件中导入 spring-boot-devtools 依赖:

<!--SpringBoot热部署配置 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.

(2)在pom.xml文件中导入 spring-boot-maven-plugin 插件:

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.

(3)设置application.properties

spring.devtools.restart.enabled=true
spring.devtools.restart.additional-paths=src/main/java

  • 1.
  • 2.

(4)开启IDEA中的自动编译选项

打开IDEA的设置(Other Settings 的设置是对整个工作空间项目都启作用,而Settings…的设置是对整个项目启作用,根据自己需要,可以都设置上):
在这里插入图片描述
搜索或者直接找到Compiler,勾选上Build project automatically,如下图所示:
在这里插入图片描述
此外,还有一个设置需要操作,按住ctrl + shift + alt + /,会出现如下图所示界面,点击Registry...
在这里插入图片描述
点击进入后,找到并勾选上compiler.automake.allow.when.app.running后关闭即可:
在这里插入图片描述
(5)开启Springboot主类热更新
在这里插入图片描述

这样,Spring Boot项目的热部署就可以了。

0x03 热部署校验

1、自己写一个Springboot项目,然后启动。

参考文章:SpringBoot+Thymeleaf+ECharts实现大数据可视化(基础篇)

2、启动后,尝试修改其中的类文件,观察控制台变化。

3、在Controller中添加一个方法及路由,然后保存,待部署好后,查看地址是否可以有内容显示。

4、参考教程:SpringBoot 在IDEA中实现热部署(实用版)

0xFF 总结
  1. 墙裂了都推荐此教程,谢谢支持。

邵奈一 原创不易,如转载请标明出处,教育是一生的事业。


版权声明
本文为[邵奈一来了]所创,转载请带上原文链接,感谢
https://blog.51cto.com/u_12564104/2894483

  1. Golang之HTTP服务『假死』问题排查
  2. 【java_基础深入】从语言规范、字节码指令、jvm编译 理解finally语句块细节
  3. 慕课网独创行业标杆级课程《Java架构师-十项全能》全网首发
  4. Linux的常见命令
  5. Petalinux和Vivado的安装
  6. 融云即时通讯SDK集成 -- 通知检查
  7. 计算机基础知识,程序员必备知识,java必会!新建一个TXT,发生了什么?
  8. 聊聊如何系统地、全方面地自学Java?(纯文字干货)
  9. 【JAVA】传统的IO和NIO区别
  10. 一起看下MySQL的崩溃恢复到底是怎么回事
  11. Java网络编程:实现QQ邮件发送客户端
  12. Kitty Cloud中Http/Rpc双协议的支持
  13. 傲视Kubernetes(二):Docker镜像搭建与本地Kubernetes环境搭建
  14. 谈谈MySQL bin log的写入机制、以及线上的参数是如何配置的
  15. JDK之ConcurrentLinkedQueue的Bug
  16. Spring Cloud 2020.0.0正式发布,再见了Netflix
  17. MySQL如何优雅的删除大表
  18. springboot的jar为何能独立运行
  19. GitLab CI构建SpringBoot-2.3应用
  20. GitLab CI构建SpringBoot-2.3应用
  21. 【重点】初窥Linux 之 我最常用的20多条命令
  22. Kubernetes官方java客户端之三:外部应用
  23. 我只会HelloWorld,但是我却完成了一个SpringBoot项目!(1)
  24. Kubernetes官方java客户端之四:内部应用
  25. Redis基础篇(八)数据分片
  26. 前阿里P8甩我一份内部SpringCloud笔记,2021大厂有望!
  27. 对HTTP请求接口资源下载时间过长的问题分析
  28. Kubernetes官方java客户端之二:序列化和反序列化问题
  29. Kubernetes官方java客户端之四:内部应用
  30. 【算法】数据结构与算法基础总览(上)数据结构篇
  31. 2021升级版微服务教程—为什么会有微服务?什么是SpringCloud?
  32. SpringBoot入门及深入
  33. Nginx安装步骤及本地浏览器不通解决方案,Nginx在Linux发布项目,Tomcat 与本地浏览器不通解决方案
  34. Docker发布线上项目
  35. Java面试题全集(15)
  36. Linux系统如何识别目录文件
  37. linux 学习笔记(一)
  38. 第07章 Spring-boot创建属于自己的自动配置 starter pom
  39. 两万字长文总结,梳理 Java 入门进阶那些事
  40. 火了,我看了10本Springboot架构书籍,融汇贯通到这一份文档里面
  41. Spring Initializr中生成的mvnw是干吗的?
  42. 如何创建一个Java项目
  43. Java对象和类
  44. 2021最新 SpringBoot面试题(附刷题小程序)
  45. java虚拟机
  46. Java多线程游戏仿真实例分享
  47. jackson学习之九:springboot整合(配置文件)
  48. 手把手教你手写一个最简单的 Spring Boot Starter
  49. 如果被问到 HTTP 协议,你真的能讲清楚吗?
  50. Spring Security 整合 微信小程序登录的思路探讨
  51. 大牛带你学会java类加载机制,不要错过,值得收藏!
  52. 大牛带你学会java类加载机制,不要错过,值得收藏!
  53. JVM篇:java类加载机制超详细讲解,不要错过,值得收藏!
  54. Spring Boot(一)—— Spring Boot入门
  55. Spring Cloud 和 Dubbo,到底用哪个好?
  56. OpenKruise v0.8.0 版本发布:K8s 社区首个规模化镜像预热能力
  57. 一个C#开发编写Java框架的心路历程
  58. OpenKruise v0.8.0 版本:K8s 社区首个规模化镜像预热能力
  59. OpenKruise v0.8.0 版本:K8s 社区首个规模化镜像预热能力
  60. 计算机基础知识,程序员必备知识,java必会!新建一个TXT,发生了什么?