paip.提升用户体验--提升java的热部署热更新能力
paip.提升用户体验--提升java的热部署热更新能力
想让java做到php那么好的热部署能力 "fix online"/在线修复吗??直接在服务器上修改源码生效,无需重启应用。。
作者Attilax 艾龙, EMAIL:1466519819@qq.com
来源:attilax的专栏
地址:http://blog.csdn.net/attilax
以下是总结一些方法。。
使用resin4代替tomcat,resin4支持更好的热部署能力
慎用spring,struts,hibernate等等框架..他们极大的降低了java的热部署能力
大量使用jsp,少使用class..jsp天然支持热更新
使用ant等自动编译java到class..
调试时候,使用远程调试,也有一些工具直接在运行时可以查看内部变量。。
大量嵌入嵌入JavaScript、php等脚本语言。java jdk包含javascript解析器(javax.script ),可直接在内部调用javascript。。通过在java中嵌入JavaScript,来获得很高的灵活性(类似于在c++中嵌入lua),大大提升java在热部署能力,修改代码很少重启jvm了。。。
真正的模块化,运行在不同的JVM里。。现在的许多模块化简单是垃圾,修改一个模块,影响整个JAVA应用,要重启。。使用多jvm分割,隔离风险。。
采用引擎( java)+脚本(js/php/lua/python)的架构,那种SDK性质的代码放在引擎中,这些代码在上线后通常很稳定很少被修改,而真正逻辑的制作就都在脚本层中进行。这样有两个好处:1.脚本层的bug基本不会导致程序的crash,因为是沙盒的。2.对于运行的代码,可以方便的采用热更新修复bug。
paip.提升用户体验--提升java的热部署热更新能力的更多相关文章
- paip.提升用户体验--radio图片选择器 easyui 实现..
#paip.提升用户体验--radio图片选择器 easyui 实现.. =================================== ##原因... ------------------- ...
- paip.提升用户体验----gcc c++ JIT-debugging 技术
paip.提升用户体验----gcc c++ JIT-debugging 技术 作者Attilax , EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http ...
- paip.提升用户体验-----c++ gcc 命令在notepad++扩展中的配置..
paip.提升用户体验-----c++ gcc 命令在notepad++扩展中的配置.. 作者Attilax , EMAIL:1466519819@qq.com 来源:attilax的专栏 地址: ...
- paip.提升用户体验---c++ qt 取消gcc编译的警告信息.txt
paip.提升用户体验---c++ qt 取消gcc编译的警告信息.txt 作者Attilax , EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http:// ...
- paip.提升用户体验---论文本编辑器的色彩方案
paip.提升用户体验---论文本编辑器的色彩方案 作者Attilax , EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csdn.ne ...
- paip.提升用户体验---c++ qt自定义窗体(1)---标题栏的绘制
源地址:http://blog.csdn.net/attilax/article/details/12343625 paip.提升用户体验---c++ qt自定义窗体(1)---标题栏的绘制 效果图: ...
- Atitit.hybrid混合型应用 浏览器插件,控件的实现方式 浏览器运行本地程序的解决方案大的总结---提升用户体验and开发效率..
Atitit.hybrid混合型应用 浏览器插件,控件的实现方式 浏览器运行本地程序的解决方案大的总结---提升用户体验and开发效率.. 1. hybrid App 1 1.1. Hybrid Ap ...
- 使用渐进式JPEG来提升用户体验
今天才认识到原来JPEG文件有两种保存方式他们分别是Baseline JPEG(标准型)和Progressive JPEG(渐进式).两种格式有相同尺寸以及图像数据,他们的扩展名也是相同的,唯一的区别 ...
- UI设计可供性解析:巧用隐藏的设计力提升用户体验
以下内容由Mockplus团队翻译整理,仅供学习交流,Mockplus是更快更简单的原型设计工具. 在实际的Web或App界面设计中,设计师们在学习和实践各种专业知识和技能之外,也会不可避免的遇到到各 ...
随机推荐
- 如何启动另一个Activity
--------siwuxie95 首先为res->layout下my_layout.xml 的Design添加一个Button,进入Text, android:text 修改为:启动另一个Ac ...
- 第三十六章 metrics(4)- metrics-graphite
将metrics report给graphite(carbon-relay) 一.代码 1.pom.xml <!-- metrics-graphite --> <dependency ...
- PHP 使用reflection时的问题,以及解决方案
错误:PHP Fatal error: Using $this when not in object context 代码如下: <?php class someClass { private ...
- [原创] Legato 8.1 oracle full backup skip 奇怪的问题处理过程 -- 非调度日期手工运行调度也不成功(skip)
转载请注明出处: http://www.cnblogs.com/fengaix6/p/4677024.html 作者:飄ぺ風 环境: a. Server: Legato 8.1.2, aix 6.1 ...
- [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
mysql 启动总是报错: 错误日志中显示: [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' ...
- 自动化运维工具之ansible(转)
原文链接:http://os.51cto.com/art/201409/451927_all.htm
- listView获取item的Edit内容,listView中的edit内容在滚动时自动赋值了前面的内容
Today I am going to explain how to create a ListView with EditText and why will we need a TextWatche ...
- u盘安装ubuntu
安装ubuntu 准备工作:首先需要安装好UltraISO(版本要比较新,有些老版本有照做后不能安装的错误) 准备好一个U盘. 下载好ubuntu光盘.(我用的12.04版) 步骤: 1.制作安装U盘 ...
- vue.js
一:vue的简单介绍: (1)Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件: (2)Vue.js 自身不是一个全能框架——它只聚焦于视图层.因此它非常容易学习,非 ...
- SDAutoLayout:比masonry更简单易用的自动布局库
SDAutoLayout:一行代码搞定自动布局!支持Cell和Tableview高度自适应,Label和ScrollView内容自适应,致力于做最简单易用的AutoLayout库. [SDAutoLa ...