了解JRebel
从字面意义上看,JRebel称为Java Rebel - Java反叛者,看来有点“革命”的味道。
JRebel最大的作用:应用服务器不再需要重启,这也是每个开发者都希望实现的。
Java HotSpot VM已经内置了动态加载类的功能,但这只针对方法内部,一旦修改了方法名称,HotSpot 就不支持了。
JRebel可以实时监测代码变更,当开发者更改了Java程序代码,JRebel可以动态加载更改的资源,热部署变更的类,不需要全部重启/重新部署。
但是,如果配置文件发生了变更,那还是得重启Web容器的。
So,为什么早没人告诉我这个东西?
JRebel可以集成在以下Java IDE中:
支持以下App容器:
支持以下常见框架:
支持以下Build工具:
Eclipse JRebel 快速上手
根据以下步骤配置你的Eclipse JRebel插件
安装
- 打开Help > Eclipse Marketplace…
- 搜索 JRebel,点击安装...
- 根据提示,你可能需要重启Eclipse
激活
- 下载JRebel 国产特色版,根据压缩包中的readme.txt操作并重启Eclipse
启动方式配置
- 打开Help > JRebel Configuration > Startup.
- 选择 Run via IDE.
项目配置
- 打开Help > JRebel Configuration > Projects.
- 在需要启用JRebel的项目中,勾选
选项。
这将会在项目中自动生成rebel.xml,并且会保持更新。
- 重新启动你的Jetty或者其他Web容器,你仍然可以使用Run或Debug方式。
- 配置版本控制工具的Ignored Resources,增加rebel.xml,保证不要上传到svn资源库。
代码重载测试
在App Server启动之后,编辑任意Java文件,测试登录功能是否重载,例如:
private static void test() {
log.info("testj + 010100011110");
}
public String intercept(ActionInvocation invocation) throws Exception {
test(); /* ...... 其他原有代码 ...... */
}