ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

人生苦短,我用JRebel

2022-03-19 14:33:47  阅读:150  来源: 互联网

标签:插件 class hello IDEA public JRebel 我用 苦短


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

img

团子表示我们的插件要比同类插件优秀哦。不过我定睛一看,好家伙,第一列的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启动项目,本地请求后,正常返回

img

这时我们增加一个方法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请求自自然也是失效的。

img

JRebel启动项目

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

img

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

img

鹅妹子嘤~完全是实时生效啊!

再试试新增一个类:

@RestController
@Slf4j
public class TestController {
    @PostMapping("/test2/helloworld")
    public String hello() {
        return "你好,第二个世界欢迎常来看看";
    }
}

这次我没有重新编译,直接请求localhost:8080/test2/helloworld,发现直接返回了信息。

img

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

img

所以当你的代码有变化时,JRebel会自动重新加载最新的代码,所以不用你手动重新编译,就会实时生效啦。同时控制台会输出以下的信息:

2022-03-19 10:18:19 JRebel: Reloading class 'com.example.littleweb.controller.TestController'.

安装JRebel

安装插件的过程很简单。

1、IDEA插件市场搜索并安装

img

2、激活

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

img

img

3、启动项目

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

img

好啦,这样,摸鱼的时间就又减少了。

标签:插件,class,hello,IDEA,public,JRebel,我用,苦短
来源: https://blog.csdn.net/u011291072/article/details/123594219

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有