Java class 热布置ITeye - 娱乐之横扫全球

Java class 热布置ITeye

2019年02月25日08时41分08秒 | 作者: 迎松 | 标签: 布置,运用,办法 | 浏览: 2808

关于java程序员来说每天有很多时刻糟蹋在重启tomcat,而关于运用OSGI的同学们来说添加一个办法或变量便需求从头打包布置重启,更是耗时备至。
热布置一般有两种完成思路:1.文件改动后去加载新的文件2.直接在原文件上修正。因而关于一个热布置东西,如果是静态文件,那么上述两种办法都是很简略就能够完成的,而关于运用osgi办法,静态文件在jar中能够运用思路1(直接相关到workspace下)。
而关于class完成起来就比较麻烦了,关于思路1一般选用类替换,这里有几种办法,一是扔掉本来的类加载器和类,从头创立一个类加载器并加载类;二是将类拆分红进口和办法,进口不变,真实的里边的办法都是在相关的一些匿名的类里,在新增/修正办法的时分,发生一个新的类,并且相关到那个进口上去,这便是动态言语(ruby)选用的机制,JRebel也选用类似机制完成的热布置。
关于思路2,dcevm也进行了完成,其思路与Jrebel有类似的当地,只不过JRebel运转在class loader这一层,而dcevm在jvm这一层, DCE VM经过修正jvm,在履行程序与硬件(应该切当的说是code编译后的机械码)中添加了一层,来完成代码在运转期动态修正(DCE)。

JRebel是收费的,并且关于OSGi这种多bundle环境来说装备杂乱,DCE VM因为更底层因而装置运用十分简略。
1. 下载dcevm-0.2-win.jar
2. 运转:java –jar dcevm-0.2-win.jar
3. 挑选一个jdk install,引荐运用jdk1.6.0 update25,亲测这个版别可用
4. Test install
5. myeclipse中运用此jdk作为myeclipse和tomcat运用的jdk

亲测在类中添加了一个特点和get set 不用重启tomcat即可在页面端收效

参阅文章
http://code.alibabatech.com/blog/dev_related_470/principles-of-anatomy-jrebel.html
http://www.cnblogs.com/redcreen/archive/2011/06/14/2080718.html
版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表娱乐之横扫全球立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章