人生苦短,我用JRebel
昨天看到团子推送的一篇关于热部署的文章,其中介绍了自研的Sonic插件在公司内部的应用。同时晒出来一张对比图:

团子表示我们的插件要比同类插件优秀哦。不过我定睛一看,好家伙,第一列的JRebel在图中的描述,除了远程debug相关的功能,其他的基本和团子的插件不相上下啊!没机会使用团子插件的朋友们,如果只是想提升本地开发效率,绝对要试一试JRebel啊!
为啥要用热部署插件?
想到了年轻的时候,每次改动代码之后,都要重新启动项目。项目小倒是还好,大一些的项目,加载的东西多,要等上一两分钟。当时就想,如果可以改了代码不重新启动就好了,真是费劲。(真是年少无知,太热爱工作,这重启的时间摸鱼,多是一件美事啊!)后来自己发现,如果只改方法中的几行代码,IDEA重新编译后是可以直接生效的(也就是上图中的IDEA热加载)。如果是增加个类,或者多写个方法,还是得老老实实的重启项目才行。
JRebel究竟有什么奇效?
IDEA启动项目
我们写个简单的demo来看看JRebel的效果。
创建一个Spring的web项目,写一个简单的Controller,实现一个post请求:
@RestController
@Slf4j
public class TestJRebelController {
@PostMapping("/test/hello")
public String hello() {
return "你好,欢迎常来看看";
}
}
通过IDEA启动项目,本地请求后,正常返回

这时我们增加一个方法helloWorld``(),如下:
@RestController
@Slf4j
public class TestJRebelController {
@PostMapping("/test/hello")
public String hello() {
return "你好,欢迎常来看看";
}
@PostMapping("/test/helloworld")
public String helloWorld() {
return "你好,这个世界欢迎常来看看";
}
}
然后在菜单栏选择Build-->Recompile 'TestJRebelController.java',弹出的窗口点击reload,这时左下角会提示新增方法的重新编译对VM是无效的,需要重新启动服务。当然,新的url请求自自然也是失效的。

JRebel启动项目
现在我们安装完JRebel,通过JRebel启动只有hello``()方法的项目。之后我们再添加helloWorld``()这个方法,按照刚才的方式重新编译,发现左下角提示“1 class reloaded”。

之后请求路径localhost:8080/test/helloworld成功返回。

鹅妹子嘤~完全是实时生效啊!
再试试新增一个类:
@RestController
@Slf4j
public class TestController {
@PostMapping("/test2/helloworld")
public String hello() {
return "你好,第二个世界欢迎常来看看";
}
}
这次我没有重新编译,直接请求localhost:8080/test2/helloworld,发现直接返回了信息。

为啥呢?原来是因为我的IDEA在这里配置了自动编译:

所以当你的代码有变化时,JRebel会自动重新加载最新的代码,所以不用你手动重新编译,就会实时生效啦。同时控制台会输出以下的信息:
2022-03-19 10:18:19 JRebel: Reloading class 'com.example.littleweb.controller.TestController'.
安装JRebel
安装插件的过程很简单。
1、IDEA插件市场搜索并安装

2、激活
重启IDEA后,根据首次安装指引,进入激活步骤。这里感谢薯条大佬搭建的激活服务器,直接访问https://jrebel.qekang.com,复制界面上展示的激活链接,填充到激活页面,然后随便填写一个邮箱名即可完成激活。


3、启动项目
之后用这个小绿火箭的图标来启动或者debug项目就可以啦。

好啦,这样,摸鱼的时间就又减少了。
人生苦短,我用JRebel的更多相关文章
- JRebel Windows RegCreateKeyEx(...) returned error code 5.
作为一个JRebel的深度用户,在win10下用JRebel的eclipse插件使用的时候遇到了如下问题: java.util.prefs.WindowsPreferences <init> ...
- IntelliJ IDEA - 热部署插件JRebel 安装使用教程
IntelliJ IDEA - JRebel 安装使用教程 JRebel 能做什么? JRebel 是一款热部署插件.当你的 Java-web 项目在 tomcat 中 run/debug 的时候 , ...
- IDEA+Tomcat+JRebel热部署1
所需资源下载: jrebel_6.4.2a 概述 JRebel是一个J2EE热部署的工具.使用它可以减少浪费8-18%的开发时间在项目的构建和部署上.之前只是听说过,一直没有实践,今天实际使用了一把 ...
- IDEA+Tomcat+JRebel热部署
在完成idea工程简单应用后,接下来实现热部署. 简单应用地址:http://wibiline.iteye.com/admin/blogs/2072454 一.安装JRebel插件 1. 在线安装 F ...
- jrebel实现tomcat热部署
-noverify -javaagent:D:\jrebel.jar 注:频繁切换工程的时候,热部署可能会失效; 解决办法是:先把项目拖到tomcat下发布,然后在没有配置上面这行代码的情况下,让项目 ...
- Intellij jrebel 热部署
Intellij 14破解下载 注册机 即可进行破解.JRebel安装下载IntelliJ IDEA的 JRebel插件: jr-ide-idea-6.2.0-idea-13-14.zip. 打开In ...
- jrebel注意事项
-Xms2048m -Xmx2048m -XX:MaxPermSize=4096m -noverify -javaagent:C:\Users\Administrator\.IntelliJIdea2 ...
- Jrebel是一套开发环境,用来实现热部署
http://truemylife.iteye.com/blog/1140921 背景与愿景:开发环境下,tomcat对热布署的支持还不够全面,致使开发人员浪费大量时间在重起服务上.为了提高开发效率, ...
- Intellij IDEA + Jrebel
Jrebel java热部署神器! 如果你没用过这里一句白话说明,就是在修改了class等源文件后无需重启web容器(如Tomcat)直接生效! 找到以后 安装... 然后 激活地址 :http:// ...
随机推荐
- 什么是Autolayout
Autolayout是一种"自动布局"技术,专门用来布局UI界面的 Autolayout自iOS 6开始引入,由于Xcode 4的不给力,当时并没有得到很大推广 自iOS 7(Xc ...
- iOS开发笔记,简单实现视频音频的边下边播
总是在网上看别人的博文,受益匪浅,从没自己写过,今天分享一点小经验,第一次写技术博客,希望对同行的ios猿们有所帮助. 先介绍一下自己的情况:一年ios开发,http协议不太懂,大约知道断点下载h ...
- ASP.NET Core 6框架揭秘实例演示[02]:基于路由、MVC和gRPC的应用开发
ASP.NET Core可以视为一种底层框架,它为我们构建出了基于管道的请求处理模型,这个管道由一个服务器和多个中间件构成,而与路由相关的EndpointRoutingMiddleware和Endpo ...
- 海盗湾The Pirate Bay:每一名技术人员都应该思考的问题
海盗湾The Pirate Bay:一场互联网技术下没有硝烟的战争 写在前面: 开学啦,返校啦!祝大家新的一年,工作顺顺利利,家庭幸福美满! 正文: 假期的时候,闲来无事,看了几部纪录片,其中< ...
- suse 12 二进制部署 Kubernetets 1.19.7 - 第07章 - 部署kube-controller-manager组件
文章目录 1.7.部署kube-controller-manager 1.7.0.创建kube-controller-manager请求证书 1.7.1.生成kube-controller-manag ...
- 阿里云服务器ECS挂载数据盘—linux系统
参考阿里云官网帮助文档:https://help.aliyun.com/document_detail/25426.html 里面有些步骤说的不是很清楚,初学者可能操作时会遇到问题.通过这篇文档进行进 ...
- dbTable
标签: <my-Double-Table double-Table="doubleTable" head-List="headList" select-M ...
- Spring高级特性之一: Aware之ApplicationContextAware
关于Spring Aware之前似乎涉及过,但是未写过单独的小作文.这里为它专门写个小作文吧,关于它在自定义注解中的应用. 首先,概要介绍下Aware. Spring的依赖注入的最大亮点就是你所有的B ...
- NSSCTF-easyupload3.0
打开环境,是一个上传的界面,点击下面的会回显出上传成功之后的路径,选择上传文件可以直接上传文件 尝试各种文件的上传(菜狗不知道怎么一下做出来,只好一个一个试),最后试出来的文件是.htaccess文件 ...
- starter
传统的 Spring 项目想要运行,不仅需要导入各种依赖,还要对各种 XML 配置文件进行配置,十分繁琐,但 Spring Boot 项目在创建完成后,即使不编写任何代码,不进行任何配置也能够直接运行 ...