首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

tomcat 架构、源码学习(3)

2012-06-30 
tomcat 架构、源码学习(三)tomcat为什么要用custom自己的Class loader:?????????? 1. 定义自己的class 导入

tomcat 架构、源码学习(三)

tomcat为什么要用custom自己的Class loader:

?????????? 1. 定义自己的class 导入规则。

?????????? 2. 缓存先前的class?

?????????? 3. 导入的class的初始化动作。

?????????? 4. 动态导入,修改后restart Context。

?

Loader

?

WebappClassLoader 导入class的过程:

???????? 1. 所有之前被加载过的class都被缓存。找到的缓存在resourceEntries中,未找到的在notFoundResources中。所有第一次加载的时候会从本地cache查找资源。(本地cache就是当前实例)

???????? 2. 如果local cache未找到,则查找其他类加载器的cache,如调用java.lang.ClassLoader.findLoadedClass方法获得的class loader。

???????? 3. 如果都没找到,则调用系统的类加载机制加载类,防止应用中某些类覆盖J2EE中的类。

???????? 4. 进行安全检查,如果有的话。如果该class不允许load则抛出ClassNotFoundException异常。

???????? 5. 如果delegate机制是开启的或者该class的package属于package trigger,则使用parent class loader来载入,如果不存在parent,则用system class loader。

???????? 6. 从当前的repositories中载入该class。

???????? 7. 如果在当前repositories中未找到该class,而且delegate机制是off的,就使用parent class loader载入class,如果parent class loader 是null,则用system class loader。

???????? 8. 如果仍然未找到class,则抛出ClassNotFoundException。

?


tomcat 架构、源码学习(3)

tomcat 架构、源码学习(3)

热点排行