第九章 類加載及執行子系統的案例與實戰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