⭐⭐⭐ Spring Boot 项目实战 ⭐⭐⭐ Spring Cloud 项目实战
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 juejin.im/post/5dac14d1f265da5b555f718b 「宇宙小神特别萌」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注**微信公众号:【芋道源码】**有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言将得到认真回复。甚至不知道如何读源码也可以请教噢
  4. 新的源码解析文章实时收到通知。每周更新一篇左右
  5. 认真的源码交流微信群。

一、Intellij热部署插件JRebel

包含:介绍jrebel、idea安装jrebel插件、激活jrebel(非免费,需要免费激活使用)、测试jrebel本地tomcat热部署、及解决jrebel插件不起作用

测试效果图:

1.测试,启动idea中的tomcat服务器。--注:我用是swagger,可以用浏览器或者postman工具测试接口(推荐)。

接口:返回Hello Spring Boot1 访问接口:查看返回数据,返回数据为Hello Spring Boot1
效果1.png 效果1.1.png

2.不关闭tomcat服务器-项目一直在运行中.....

将接口Hello Spring Boot1修改为Hello Spring Boot2 再次访问接口: 查看返回数据,返回数据为Hello Spring Boot2
效果2.png 效果2.2.png

此时,发现返回结果是Hello Spring Boot2,实现了在服务器运行的时候修改代码和数据、而tomcat服务器并没有重新启动,代码或数据已经实时更新。

介绍JRebel:

JRebel使你能即时分别看到代码、类和资源的变化,你可以一个个地上传而不是一次性全部部署。当程序员在开发环境中对任何一个类或者资源作出修改的时候,这个变化会直接反应在部署好的应用程序上,从而跳过了构建和部署的过程,每年可以省去部署用的时间花费高达5.25个星期。

JRebel是一款Java虚拟机插件,它使得我们能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响。JRebel使你能即时分别看到代码、类和资源的变化,你可以一个个地上传而不是一次性全部部署。

安装JRebel

安装和使用JRebel需要注意两点:激活和设置

1、在IDEA中一次点击 File->Settings->Plugins->Brows Repositories 2、在搜索框中输入JRebel进行搜索 3、找到JRebel for intellij 4、install 5、安装好之后需要restart IDEA

jrebel插件安装.png

激活JRebel

JRebel并非免费的插件,需要激活之后才能使用。

最新激活url地址 : http://139.199.89.239:1008/b8fdf475-b9f7-4146-b426-6e1bb5a17a16 下面的框中输入邮箱地址 , 可随意填 test@123.com. 然后点击右下角的激活按钮即可

在IDEA中一次点击 File->Settings->JRebel 并找到激活界面(因为我的已经激活了,点击change liense进入的激活界面)

jrebel激活.png

激活地址.png

操作方法就是点击Work offile 按钮即可:

开启方式.png

说明:

如果出现激活过期的情况下 , 可以重新生成一下GUID , 替换原来的GUID即可 . 在线生成GUID地址: www.ofmonkey.com/transfer/gu…

手动热部署:每次更改代码,不需要重启tomcat 使用Tomcat Web容器来开发的话,还需要配置运行项目, 如果web启动的时候,出现内存溢出现象则需要配置一下VM options:1099

手动热部署.png

如果你用Jetty容器,那就不用像上面这样配置,直接点击绿色小火箭,运行/调试都可以.

调试.png

此时,已经配置好JRebel,可以进行测试啦

测试效果如最上测试效果图一样!

JRebel没有效果时的相关设置及解决办法

此时虽然安装好了JRebel并成功激活了,但是我们使用JRebel debug的时候,发现修改代码后,热部署不起作用。因为还需要设置两个地方

1、设置项目自动编译

设置项目自动编译.png

2、设置 compiler.automake.allow.when.app.running ctrl+shift+A 或者 help->find action…打开 搜索registry

找到 compiler.automake.allow.when.app.running 并✔

running.png

3.有时候会发现Jrebel不起作用,即使是重启Tomcat都不起作用。

在Jrebel项目配置文件会存放项目的路径,我将项目复制了一份,项目路径变了,但是相应的配置文件中没有更改,所以,Jrebel就不起作用了。

解决办法如下: (1)如果项目中不存在rebel.xml 在Jrebel插件中点击生成rebel.xml (2)如果项目中已存在rebel.xml 在src/main/resources中修改项目的路径,查看项目路径是否正确!

生成rebel.xml : 本地tomcat热部署.png

本地tomcat热部署.png

本地tomcat热部署和远程tomcat热部署 建议:不要选择远程tomcat热部署,现在还没有配置远程服务器配置,会提示你 new remote server。此时,把远程不要勾选。

rebel文件生成.png

目前先实现本地tomcat热部署; 测试效果在最上面! 解决的问题:项目更改完代码,每次更改都要重新启动服务器,在开发阶段浪费很多时间,idea中tomcat服务器重启有时候会很慢,so. 就用idea jrebel插件,在项目运行中,更改代码后不用重启服务器,实现代码实时更新;

远程tomcat热部署,还需要配置好多,后续进行更新远程部署;

文章目录
  1. 1. 一、Intellij热部署插件JRebel
    1. 1.0.1. 测试效果图:
  2. 1.1. 介绍JRebel:
  3. 1.2. 安装JRebel
  4. 1.3. 激活JRebel
    1. 1.3.1. 此时,已经配置好JRebel,可以进行测试啦
  5. 1.4. JRebel没有效果时的相关设置及解决办法