Tomcat 是日常用到的轻量级应用服务器Tomcat 有其自己的类加载机制,理解它的类加载机制有助于在日常工作中快速定位问题。
录“/WEB-INF/*”一共4组,把Java类库放置在这些目录中的含义汾别如下
定义了多个类加载器,这些类加载器按照经典的双亲委派模型来实现其关系如下图所示
Tomcat加载器的实现清晰易懂,并且采用了官方推荐的“正统”的使用类加载器的方式如果读者阅读完上面的案例后,能完全理解Tomcat设计团队这样布置加载器架构的用意那说明已經大致掌握了
类加载器“主流”的使用方式,那么笔者不妨再提一个问题让读者思考一下:前面曾经提到过一个场景如果有10个Web应用程序嘟是用Spring来进行组织和管理的话,可以把Spring放到Common或shared意思目录下让这些程序共享Spring要对用户程序的类进行管理,自然要能访问到用户程序的类洏用户的程序显然是放在/WebApp/WEB-INF目录中的,那么被CommonClassLoader或shared意思ClassLoader加载的Spring如何访问并不在其加载范围内的用户程序呢
***:线程上下文类加载器,可以實现父加载器对子加载器的逆向访问