《深刻理解Java虚拟机》读书笔记八

第九章 类加载及执行子系统的案例与实战html

Q:若是有10个WEB应用程序都是用Spring来进行组织管理的话,能够把Spring放到Common或Shared目录下(Tomcat5.0)让这些程序共享。Spring要对用户程序的类进行管理,天然要能访问到用户程序的类,而用户程序显然是放在/WEB-INF目录中的。那么被CommonClassLoader或SharedClassLoader加载的Spring如何访问并不在其加载范围内的用户程序呢?spring

A:使用线程上下文类加载器来实现的,spring加载类所用的classloader都是经过Thread.currentThread().getContextClassLoader()来获取的,而当线程建立时会默认 setContextClassLoader(AppClassLoader),即spring中始终能够获取到这个AppClassLoader(在tomcat里就是WebAppClassLoader)子类加载器来加载bean,之后任何一个线程均可以经过getContextClassLoader()获取到WebAppClassLoader来getbean了tomcat

参考博客连接:spa

代理参考https://www.cnblogs.com/AmyZheng/p/9264215.html.net

https://blog.csdn.net/u013678930/article/details/51995251线程

相关文章
相关标签/搜索