《深刻理解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線程

相關文章
相關標籤/搜索