SpringBoot SpringCloud 热部署 热加载 热调试
疯狂创客圈 Java 高并发【 亿级流量聊天室实战】实战系列 【博客园总入口 】
架构师成长+面试必备之 高并发基础书籍 【Netty Zookeeper Redis 高并发实战 】
Crazy-SpringCloud 微服务脚视频&环境搭建介绍:
疯狂创客圈 Crazy-SpringCloud 微服务脚手架,是为 Java 微服务开发 入门者 准备的 学习和开发脚手架。并配有一系列的使用教程和视频,大致如下:
高并发 环境搭建 图文教程和演示视频,陆续上线:
| 中间件 | 链接地址 |
|---|---|
| Linux Redis 安装(带视频) | Linux Redis 安装(带视频) |
| Linux Zookeeper 安装(带视频) | Linux Zookeeper 安装, 带视频 |
| Windows Redis 安装(带视频) | Windows Redis 安装(带视频) |
| RabbitMQ 离线安装(带视频) | RabbitMQ 离线安装(带视频) |
| ElasticSearch 安装, 带视频 | ElasticSearch 安装, 带视频 |
| Nacos 安装(带视频) | Nacos 安装(带视频) |
Crazy-SpringCloud 微服务脚手架 图文教程和演示视频,陆续上线:
| 组件 | 链接地址 |
|---|---|
| Eureka | Eureka 入门,带视频 |
| SpringCloud Config | springcloud Config 入门,带视频 |
| spring security | spring security 原理+实战 |
| Spring Session | SpringSession 独立使用 |
| 分布式 session 基础 | RedisSession (自定义) |
| 重点: springcloud 开发脚手架 | springcloud 开发脚手架 |
| SpingSecurity + SpringSession 死磕 (写作中) | SpingSecurity + SpringSession 死磕 |
小视频以及所需工具的百度网盘链接,请参见 疯狂创客圈 高并发社群 博客
前言:SpringCloud 热部署 热加载 热调试
有两种方式:
一: devtools的热部署
【这是一种假的热部署,说白了就是重启一下】
二. jrebel 的热部署
很牛逼,但是需要破解哦
方式一:devtools 的热部署
每修改一下代码再去 run一次, 实在是很麻烦. 很浪费时间. 很低效
但既然用这个框架的,它所包含的特性什么的还是要充分利用,不能浪费呀!
springboot的热部署网上有太多的教案,在此呢,也只是真实记录一下自己在实际操作过程中的方法步骤。
1、pom.xml配置,这是一定要配置的
热加载在pom.xml中添加devtools的maven引用,同时在plugin中添加devtools生效标志
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork> <!-- 如果没有该生效标志,热部署的devtools不生效 -->
</configuration>
<executions>
<execution>
<goals>
<goal>build-info</goal>
</goals>
</execution>
</executions>
</plugin>
2、Idea设置
于热部署是监听 Class 文件的变化,它自身不会主动去编译 Java 文件,所以我们得在 Java 文件改动时,自动编译成 Class 文件,然后热部署工具创造的新的类加载器才会加载改变后的 Class 文件。
所以,如果你使用 IDEA 开发工具的话,记得要把自动编译打开。
File | Settings | Build, Execution, Deployment | Compiler :该√的√上

3、修改IDEA的 Registry
开启自动编译,还差一步。
所以,如果你使用 IDEA 开发工具的话,记得要把自动编译打开。
再执行 shift+ctrl+alt+/ 快捷键


在配置文件application.yml
热部署生效:在配置文件application.yml中添加 :
spring:
devtools:
restart:
enabled: true #设置开启热部署
4 重启idea,运行工程
注意:这种配置启动不能直接运行 main 方法了,需要使用 mvn spring-boot:run 启动,
运行:mvn clean spring-boot:run
问题:
springBoot框架 只是实现了热启动而已,从控制台日志就可以看出来。
方式二: JRebel插件热部署
可以在csdn下载离线插件:
https://download.csdn.net/download/qq_32769447/11667644
也可以使用idea安装在线插件:
开发工具idea中使用JRebel插件
JRebel是JavaEE中比较流行的热部署插件,可快速实现热部署,节省了大量重启时间,提高了个人开发效率。
1、点击File -> Settings -> Plugins,如下图:搜索JRebel安装

jrebel 的激活和使用
1、重启idea,右上角即出现快捷按钮,分别是run、debug模式
2 第一次使用是,需要 激活
jrebel 的激活地址,请参见博客 https://blog.csdn.net/qq_41933149/article/details/100815529
激活需要生成GUID, 生成一个GUID
在线生成GUID地址,https://www.guidgen.com/ , PS:如果失效刷新GUID替换就可以!
3 激活之后,也可以右键springboot的启动类:
又或者使用spring的运行面板:
手动编译要加载的类
如果配置了自动编译,这一步,直接忽略

jrebel自动加载class,自动配置bean
代码重新编译后,jrebel自动加载class,自动配置bean

设置为离线模式
然后将JRebel设置为离线模式,可以180天内不用再次激活,如下图
高并发IM,高并发秒杀,请关注 Java 高并发研习社群 【博客园 总入口 】
最后,介绍一下疯狂创客圈:疯狂创客圈,一个Java 高并发研习社群 【博客园 总入口 】
疯狂创客圈,倾力推出:面试必备 + 面试必备 + 面试必备 的基础原理+实战 书籍 《Netty Zookeeper Redis 高并发实战》
疯狂创客圈 Java 死磕系列
- Java (Netty) 聊天程序【 亿级流量】实战 开源项目实战
Netty 源码、原理、JAVA NIO 原理
Java 面试题 一网打尽
疯狂创客圈 【 博客园 总入口 】
QyNy05NTY0MjQxMjQuanBn?x-oss-process=image/format,png)
疯狂创客圈 Java 死磕系列
- Java (Netty) 聊天程序【 亿级流量】实战 开源项目实战
Netty 源码、原理、JAVA NIO 原理
Java 面试题 一网打尽
疯狂创客圈 【 博客园 总入口 】
SpringBoot SpringCloud 热部署 热加载 热调试的更多相关文章
- mysql 5.6 后热数据的加载
mysql 5.6 后热数据的加载 转自:http://blog.itpub.net/20892230/viewspace-2127469/ 故障现象:在数据库重启后,碰巧遇到业务高峰期,连接数满,导 ...
- NodeJS”热部署“代码,实现动态调试(hotnode,可以实现热更新)
NodeJS”热部署“代码,实现动态调试 开发中遇到的问题 如果你有 PHP 开发经验,会习惯在修改 PHP 脚本后直接刷新浏览器以观察结果,而你在开发 Node.js 实现的 HTTP 应用时会 ...
- nginx反向代理部署springboot项目报404无法加载静态资源
问题:nginx反向代理部署springboot项目报404无法加载静态资源(css,js,jpg,png...) springboot默认启动端口为8080,如果需要通过域名(不加端口号)直接访问s ...
- SpringBoot系列教程之Bean加载顺序之错误使用姿势辟谣
在网上查询 Bean 的加载顺序时,看到了大量的文章中使用@Order注解的方式来控制 bean 的加载顺序,不知道写这些的博文的同学自己有没有实际的验证过,本文希望通过指出这些错误的使用姿势,让观文 ...
- C#开发BIMFACE系列48 Nginx部署并加载离线数据包
BIMFACE二次开发系列目录 [已更新最新开发文章,点击查看详细] 在前一篇博客<C#开发BIMFACE系列47 IIS部署并加载离线数据包>中详细介绍了IIS部署并访问的完整步 ...
- KEngine:Unity3D资源的打包、加载、调试监控
资源模块做什么? 资源模块——ResourceModule,是KEngine中最核心的模块,其他模块基本或多或少的对它有依赖,它主要的功能是:资源打包.路径定义.资源管理.资源调试. 资源模块对Uni ...
- 最简破解-java代码热加载热部署IDEA插件JRebel
如果经济实力允许的话,还是建议大家去购买收费版.支持原创作者,才能有更好的产品出现. 一.Jrebel插件介绍 JRebel一款帮助我们在开发过程中实现热加载的插件,目前来说,在IDEA中实现热加载最 ...
- [Android]动态加载/热部署框架汇总
1.DroidPlugin 用途:动态加载 使用案例:360手机助手 GitHub地址:https://github.com/Qihoo360/DroidPlugin ppt介绍:https://gi ...
- Unity3d热更新全书-加载(一)从AssetBundle说起
Unity3D动态下载资源,有没有解?有,AssetBundle就是通用解,任何一本书都会花大幅篇章来介绍AssetBundle. 我们也来说说AssetBundle 我们试全面的分析一下Unity3 ...
随机推荐
- 01-python中一切皆对象
python一切皆对象 Python中一切皆对象,在静态语言中,Java也是面向对象编程,Python要比Java的面向对象编程更加彻底.元类编程以及猴子补丁都是用一切皆对象编程出来的. 1.函数和类 ...
- Django2.0--创建缓存表
创建缓存表 在项目的虚拟环境下(若有),执行:python manage.py createcachetab
- 天了噜,为什么外链css要放在头部,js要放在尾部?
我们最开始学前端的时候都会看到教程在处理外部css,js的时候会将css放在header中,js放在body的最后.为什么要这样子处理,今天参考一些资料好好分析下. 为什么外链css为什么要放头部? ...
- 使用FastReport报表工具实现信封套打功能
在较早期的报表套打的时候,我倾向于使用LODOP的ActiveX进行报表的打印或者套打,BS效果还是很不错的.之前利用它在Winform程序里面实现信封套打功能,详细参考<基于信封套打以及批量打 ...
- python小知识课堂
啦啦啦 with上下文管理 __class__和type的关系
- For input string:"name"
今天写项目的时候遇到了For input string:"name"这个错误,在控制台看报错信息好像是在说类型格式转换错误, 可是我并没有转换格式,这个name是我在jsp页面中使 ...
- 月下无限连?拒绝无休止switch!
拒绝无休止switch 一.前言 前天碰到个需求,其实很简单,就是Excel导入,Excel模板长下面这样: 按我平常的逻辑是这样做的: 用文件输入流读取Excel,根据Excel的版本生成不同的对象 ...
- JVM前奏篇(大局观)
话不多说直接上干货,先来看oracle官网中是怎么描述JDK的:https://docs.oracle.com/javase/8/docs/index.html 这是官网中JDK.JRE.JVM的一个 ...
- Tomcat eclipse 启动时一个工程影响另一个工程
两个project:A, B; 工程 A 的 Jersey 服务是正常的, 工程 B 的 Jersey 服务是不正常的:如果工程 B 不存在的话, 工程 A 的 Jersey 服务可以在 Tomca ...
- luogu P1754 球迷购票问题
题目背景 盛况空前的足球赛即将举行.球赛门票售票处排起了球迷购票长龙. 按售票处规定,每位购票者限购一张门票,且每张票售价为50元.在排成长龙的球迷中有N个人手持面值50元的钱币,另有N个人手持面值1 ...