分享一下Tomcat类加载器的加载规则,楼主你看一下吧
1:因为所有已经载入的类都会缓存起来,所以先检查本地缓存
2:如本地缓存没有,则检查上一级缓存,即调用ClassLoader类的findLoadedClass()方法;
3:若两个缓存都没有,则使用系统的类进行加载,防止Web应用程序中的类覆盖J2EE的类
4:若打开标志位delegate(表示是否代理给父加载器加载),或者待载入的类是属于包触发器的包名,则调用父类载入器来加载,如果父类载入器是null,则使用系统类载入器
5:从当前仓库中载入相关类
6:若当前仓库中没有相关类,且标志位delegate为false,则调用父类载入器来加载,如果父类载入器是null,则使用系统类载入器(4跟6只能执行一个步骤的)
|