锁定老帖子 主题:java动态代码的实现以及Class的卸载
精华帖 (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而不是重新启动应用服务器,也会出现类似情况。 |
|
返回顶楼 | |
发表时间:2007-01-12
那就研究一下,楼上的!
|
|
返回顶楼 | |
发表时间:2007-01-12
比较有创意,收藏
|
|
返回顶楼 | |
发表时间:2007-01-12
magice 写道 Godlikeme 写道 动态加载class 不是什么好主意,可以说是一个馊主意。 为什么不具体说说为什么是一个馊注意呢!3年前就做过一个自动测试机,用的是动态生成unit Test类的测试逻辑,然后动态编译加载自动执行测试,对于这样的小工具还可以。再有就是热部署了。 对于应用来讲,是一个不顾一切的捣洞技术,带来了系统运行不稳定的一系列问题。比如SPRING框架下beanFactory肯定会有问题。 |
|
返回顶楼 | |
发表时间:2007-01-12
引用 那就研究一下,楼上的!
嗯,有机会的话一定会。 |
|
返回顶楼 | |
发表时间:2007-01-13
代理,面向接口编程
public interface Postman { void deliverMessage(String msg); } 这个容易做到,难的是有没有办法做到动态接口动态实现之类的呢? 这在得Class.forName了?还是另有它法? |
|
返回顶楼 | |
发表时间:2007-01-13
jsp和java类是完全不一样的概念。
jsp->servlet 在web容器中,你的servlet是单例的,也是无状态的,线程安全的。也就是只有一个对象, jsp改变以后,web容器只要把相应的servlet对象更新就好了。 而java呢? 可能这个类在你的应用中有n个实例,与这些实例单向,双向关联的又有n个实例。如果你修改了,这些jvm存在的老的实例对象怎么办???? java这类静态语言无法实现象asp,php,jsp的效果的。 |
|
返回顶楼 | |
发表时间:2007-01-14
zkj_beyond 写道 jsp和java类是完全不一样的概念。
jsp->servlet 在web容器中,你的servlet是单例的,也是无状态的,线程安全的。也就是只有一个对象, jsp改变以后,web容器只要把相应的servlet对象更新就好了。 而java呢? 可能这个类在你的应用中有n个实例,与这些实例单向,双向关联的又有n个实例。如果你修改了,这些jvm存在的老的实例对象怎么办???? java这类静态语言无法实现象asp,php,jsp的效果的。 同意, 动态替换代码必需重新构造新的对象实例才能生效, 所以基本上只有是无状态对象在容器中执行的情况下才有现实意义. |
|
返回顶楼 | |
发表时间: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而不是重新启动应用服务器,也会出现类似情况。 的确如此! |
|
返回顶楼 | |
发表时间:2007-01-15
JDK6.0中加入对脚本语言的支持也应该有这种的考虑吧,只是由于脚本是解释执行的,比较好处理。
感觉还是有一定的应用场景 有没有更详细的资料? |
|
返回顶楼 | |