论坛首页 Java企业应用论坛

java动态代码的实现以及Class的卸载

浏览 13846 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-01-12  
Dustin 写道
引用
PermGen space 是 hotspot 存放永久生成(permanent generated)的数据的空间,包括类、intern string等


Tomcat等JSP容器都支持热部署,它们是否存在这样的问题?如果存在,它们是使用什么机制解决的呢?没有深入研究过Tomcat,迷惑中。

一个最典型的例子是,你在IDE中(包括 netbeans 和 ecilpse)不断 restart 某个webapp,特别是用到了 spring/hibernate 的 webapp,就会出现这个 error。这可能是由于 spring 对程序结束的清除工作做得不是很好。在实际的部署中,基于 spring 的程序如果单是重新deploy而不是重新启动应用服务器,也会出现类似情况。
0 请登录后投票
   发表时间:2007-01-12  
那就研究一下,楼上的!
0 请登录后投票
   发表时间:2007-01-12  
比较有创意,收藏
0 请登录后投票
   发表时间:2007-01-12  
magice 写道
Godlikeme 写道
动态加载class 不是什么好主意,可以说是一个馊主意。
为什么不具体说说为什么是一个馊注意呢!

3年前就做过一个自动测试机,用的是动态生成unit Test类的测试逻辑,然后动态编译加载自动执行测试,对于这样的小工具还可以。再有就是热部署了。
对于应用来讲,是一个不顾一切的捣洞技术,带来了系统运行不稳定的一系列问题。比如SPRING框架下beanFactory肯定会有问题。
0 请登录后投票
   发表时间:2007-01-12  
引用
那就研究一下,楼上的!


嗯,有机会的话一定会。
0 请登录后投票
   发表时间:2007-01-13  
代理,面向接口编程
public interface Postman {
	
	void deliverMessage(String msg);
}


这个容易做到,难的是有没有办法做到动态接口动态实现之类的呢?
这在得Class.forName了?还是另有它法?
0 请登录后投票
   发表时间:2007-01-13  
jsp和java类是完全不一样的概念。

jsp->servlet 在web容器中,你的servlet是单例的,也是无状态的,线程安全的。也就是只有一个对象,
jsp改变以后,web容器只要把相应的servlet对象更新就好了。


而java呢?
可能这个类在你的应用中有n个实例,与这些实例单向,双向关联的又有n个实例。如果你修改了,这些jvm存在的老的实例对象怎么办????

java这类静态语言无法实现象asp,php,jsp的效果的。
0 请登录后投票
   发表时间:2007-01-14  
zkj_beyond 写道
jsp和java类是完全不一样的概念。

jsp->servlet 在web容器中,你的servlet是单例的,也是无状态的,线程安全的。也就是只有一个对象,
jsp改变以后,web容器只要把相应的servlet对象更新就好了。


而java呢?
可能这个类在你的应用中有n个实例,与这些实例单向,双向关联的又有n个实例。如果你修改了,这些jvm存在的老的实例对象怎么办????

java这类静态语言无法实现象asp,php,jsp的效果的。

同意, 动态替换代码必需重新构造新的对象实例才能生效, 所以基本上只有是无状态对象在容器中执行的情况下才有现实意义.
0 请登录后投票
   发表时间:2007-01-14  
kdekid 写道
Dustin 写道
引用
PermGen space 是 hotspot 存放永久生成(permanent generated)的数据的空间,包括类、intern string等


Tomcat等JSP容器都支持热部署,它们是否存在这样的问题?如果存在,它们是使用什么机制解决的呢?没有深入研究过Tomcat,迷惑中。

一个最典型的例子是,你在IDE中(包括 netbeans 和 ecilpse)不断 restart 某个webapp,特别是用到了 spring/hibernate 的 webapp,就会出现这个 error。这可能是由于 spring 对程序结束的清除工作做得不是很好。在实际的部署中,基于 spring 的程序如果单是重新deploy而不是重新启动应用服务器,也会出现类似情况。

的确如此!
0 请登录后投票
   发表时间:2007-01-15  
JDK6.0中加入对脚本语言的支持也应该有这种的考虑吧,只是由于脚本是解释执行的,比较好处理。
感觉还是有一定的应用场景
有没有更详细的资料?
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics