《深入理解java虚拟机》读书笔记八——第九章
2024-09-04 23:35:25
第九章 类加载及执行子系统的案例与实战
Q:如果有10个WEB应用程序都是用Spring来进行组织管理的话,可以把Spring放到Common或Shared目录下(Tomcat5.0)让这些程序共享。Spring要对用户程序的类进行管理,自然要能访问到用户程序的类,而用户程序显然是放在/WEB-INF目录中的。那么被CommonClassLoader或SharedClassLoader加载的Spring如何访问并不在其加载范围内的用户程序呢?
A:使用线程上下文类加载器来实现的,spring加载类所用的classloader都是通过Thread.currentThread().getContextClassLoader()来获取的,而当线程创建时会默认 setContextClassLoader(AppClassLoader),即spring中始终可以获取到这个AppClassLoader(在tomcat里就是WebAppClassLoader)子类加载器来加载bean,以后任何一个线程都可以通过getContextClassLoader()获取到WebAppClassLoader来getbean了
参考博客链接:
最新文章
- ubuntu修改163软件源
- HTML5学习总结
- 解压缩c#
- poj 3734 Blocks 快速幂+费马小定理+组合数学
- WPF自定义窗口基类
- appframework(jqmobi) 3.0 设置
- JS settimeout 使用笔记
- Mac下修改环境变量
- pip报ssl错误解决
- leetcode 109 Convert Sorted List to Binary Search Tree ----- java
- Web请求响应简单整理
- 网页加载速度优化2--先加载css,然后再加载js文件。
- Java笔记(十二)……类中各部分加载顺序及存放位置问题
- uva 1596 Bug Hunt
- 原生js动态改变dom高度
- MongoDB中的MapReduce介绍与使用
- 安装cocoa pods时出现Operation not permitted - /usr/bin/xcodeproj的问题
- 机器学习基石:14 Regularization
- VSC 解决红底线问题
- BUAA Summer Practice 2017 #1 字符串专场