cuiyi's blog(崔毅 crazycy)

记录点滴 鉴往事之得失 以资于发展
数据加载中……

ClassLoader专题(二):从Servlet容器看ClassLoader机制的妙用

ClassLoader 专题(一): ClassLoader 基础

ClassLoader 专题(二):从 Servlet 容器看 ClassLoader 机制的妙用
    ClassLoader专题(三):引文

classloader有啥妙用(1)?
这个问题得从自定义的classloader身上说,那自定义classloader缘由是什么呢?
告诉你:大多是因为编译时无法预知运行时需要哪些类,特别是app server;因此自定义classloader,运行时指定路径,来加载这个路径下的class


特殊说明
特殊说明1:如果没有特殊指定,用户自定义的classloader都把system classloader作为它的父加载器
特殊说明2:jvm认为不同的classloade载入相同名字的class是不同的,即使从同一个class文件载入


classloader有啥妙用(2)?
看到特殊说明2,你或许就会感觉疑惑或者不爽;啥概念?
以servlet、ejb等容器来剖析这个问题:

将接口或者基类放入classpath                         <---------system classloader
执行时,动态载入实现或者继承这些接口或者基类的子类;<---------customized classloader
         ||
         ||
用customized classloader载入类时,发现它有一个父类class(extends);
但是在载入它时,jvm先加载父类class; 这个父类是system classloader能识别的; 根据“委托机制”它将由system classloader来加载;
然后customized classloader(实际是system classloader来加载)再载入这个class,创建一个实例,转型为父类;
jvm就使用system classloader再次载入父类class,然后将此实例转型为这个父类class;

这个过程加载了两个父类class,都是由system classloader载入;即同一个classloader载入同一个文件,造型不会由异常

web app server大概是这样工作的;这样载入了任何继承了servlet的class并正确运行它们,不管class是什么,都它们实例化为一个servlet class

posted on 2006-11-24 22:20 crazycy 阅读(3463) 评论(7)  编辑  收藏 所属分类: JavaSE语言

评论

# re: ClassLoader专题(二):从Servlet容器看ClassLoader机制的妙用  回复  更多评论   

专题二没大看明白,
再搜搜相关资料看一看去。
2007-02-03 01:01 | xigo

# re: ClassLoader专题(二):从Servlet容器看ClassLoader机制的妙用  回复  更多评论   

想请教下前辈,对自定义classloader的实际应用方面的看法。最近在做这个毕设。指点一二,不胜感激。
2007-04-16 20:52 | 久城

# re: ClassLoader专题(二):从Servlet容器看ClassLoader机制的妙用  回复  更多评论   

@久城
有个文章很棒,一起分享
http://www.javaworld.com/javaworld/javaqa/2003-06/01-qa-0606-load.html?page=1
2007-05-05 01:43 | crazycy

# re: ClassLoader专题(二):从Servlet容器看ClassLoader机制的妙用  回复  更多评论   

谢谢BZ,已经收集...
http://www.blogjava.net/realsmy/archive/2007/04/26/113672.html
2007-05-05 08:10 | 久城

# re: ClassLoader专题(二):从Servlet容器看ClassLoader机制的妙用  回复  更多评论   

@久城
网上现有的翻译只是前边部分,翻译总体不错,几个细节比较粗糙,比如为什么JNDI需要引入ContextClassLoader,翻译错过了几个关键的词,导致难以理解;见我在ClassLoader专题(三)中原文标注部分
2007-05-06 00:40 | crazycy

# re: ClassLoader专题(二):从Servlet容器看ClassLoader机制的妙用  回复  更多评论   

太感谢了!~学习!
2007-05-06 10:05 | 久城

# re: ClassLoader专题(二):从Servlet容器看ClassLoader机制的妙用  回复  更多评论   

压力容器人才网www.cpvjob.com 压力容器人才求职、压力容器企业招聘唯一专业性人才招聘网站,欢迎登陆,祝工作愉快,请转发给您的好友
2008-11-19 19:52 | 压力容器人才网

只有注册用户登录后才能发表评论。


网站导航: