博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CommonClassLoader或SharedClassLoader加载的Spring如何访问并不在其加载范围内的用户程序呢...
阅读量:4498 次
发布时间:2019-06-08

本文共 595 字,大约阅读时间需要 1 分钟。

Question

引自《深入理解虚拟机—JVM高级特性与最佳实践》9.2.1,p235

如果有10个WEB应用程序都是用来进行组织管理的话,可以把Spring放到Common或Shared目录下(Tomcat5.0)让这些程序共享。Spring要对用户程序的类进行管理,自然要能访问到用户程序的类,而用户程序显然是放在/WEB-INF目录中的。那么被

object 就是调用者,假设它所在类A的ClassLoader是User-defined ClassLoaderA,那么它在doing里面装载B类使用的ClassLoader就是默User-defined ClassLoaderA。我们再假设A只能被User-defined ClassLoaderA装载,B只能被User-defined ClassLoaderB装载,如下图关系:

这里写图片描述

那么可以看出按照双亲委派模型,object 所在的A类是无法加载B类的,因为模型的特点就是只能向上加载不能向下。回到我们的问题:Spring就好像类A,用户程序就好像类B,那么Spring如何加载用户程序的类呢?实际上在《深入理解Java虚拟机—JVM高级特性与最佳实践》7.4.3,p195,里面已经说了,使用上下文类加载器就可以实现“向下加载”。

转载于:https://www.cnblogs.com/diegodu/p/7249098.html

你可能感兴趣的文章
Android自动化压力测试之Monkey Test 异常解读(五)
查看>>
Compressing Convolutional Neural Networks in the Frequency Domain 论文笔记
查看>>
设计模式:单例和多例
查看>>
Myslq 之修改数据库
查看>>
maven工程转为web工程时没有add web project capabilities选项的解决办法
查看>>
[BZOJ1192][HNOI2006]鬼谷子的钱袋
查看>>
正则表达式之 数据验证 与 文本替换
查看>>
CLR via C#:CLR的执行模型
查看>>
JS获取服务器时间
查看>>
如何对数据排序和拆分文件
查看>>
数据解析01-15
查看>>
linux 安装mysql数据库——yum安装法
查看>>
Several ports (8005, 80, 8009) required by Tomcat v6.0 Server at localhost are already in use
查看>>
事件监听器
查看>>
设计模式之单例设计模式
查看>>
异常的基本概念
查看>>
vue 在发送axios请求时数据渲染问题
查看>>
动态链接库dll
查看>>
2018 Multi-University Training Contest 3 - HDU Contest
查看>>
组合数取模(转载)
查看>>