第九章 類加載及執行子系統的案例與實戰
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了
參考博客鏈接:
代理參考https://www.cnblogs.com/AmyZheng/p/9264215.html
https://blog.csdn.net/u013678930/article/details/51995251