《深入理解Java虛擬機》讀書筆記八

第九章 類加載及執行子系統的案例與實戰

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

轉載于:https://www.cnblogs.com/AmyZheng/p/10550796.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/249431.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/249431.shtml
英文地址,請注明出處:http://en.pswp.cn/news/249431.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

一些非常有用的鏈接和工具

微信公眾平臺SDK Senparc.Weixin for C#,支持.NET Framework及.NET Core : https://github.com/JeffreySu/WeiXinMPSDK layui開發文檔地址:https://www.layui.com/doc/ .Net Core GitHub社區 : https://github.com/dotnetcore EF…

Activity Intent相關FLAG介紹

先首先簡單介紹下Task和Activity的關系 Task就像一個容器,而Activity就相當與填充這個容器的東西,第一個東西(Activity)則會處于最下面,最后添加的東西(Activity)則會在最上面。從Task中取出東西…

js的原型和原型鏈

構造函數創建對象: function Person() {} var person new Person(); person.name Kevin; console.log(person.name) // KevinPerson 就是一個構造函數,我們使用 new 創建了一個實例對象 person prototype 每個函數都有一個 prototype 屬性 每一個Ja…

二維數組

要求:求一個二維數組的最大子數組和 思路:對于這個題,我會最簡單的讀取,雖然在網上查到了代碼,但是查找最大子數組的循環我真的看不懂,也不是特別懂思路,所以在這不會寫思路 package 二維數組; …

資源

資源鏈接: 內存池TinySTLminiSTLcghSTL1. lishuhuakai 2. 轉載于:https://www.cnblogs.com/sunbines/p/9707483.html

Android判斷應用或Activity是否存在

一、根據包名判斷應用是否存在public boolean checkApplication(String packageName) { if (packageName null || "".equals(packageName)){ return false; } try { ApplicationInfo info getPackageManager().getApplicationInfo(packageName, PackageManager.GET…

vue ref

https://www.jianshu.com/p/623c8b009a85

033 Url中特殊字符的處理

在url跳轉頁面的時候,參數值中的#不見了,一直沒有處理,今天有空看了一下,后來發現后臺的過濾器之類的都沒有處理,就比較奇怪了,原來是特殊字符的問題。 一:Url中的特殊字符 1.說明 這里還是需要…

Effective Java(1)-創建和銷毀對象

Effective Java(1)-創建和銷毀對象 轉載于:https://www.cnblogs.com/Johar/p/10556218.html

什么是Affinity

什么是Affinity 在某些情況下,Android需要知道一個Activity屬于哪個Task,即使它沒有被啟動到一個具體的Task里。這是通過任務共用性(Affinities)完成的。任務共用性(Affinities)為這個運行一個或多…

vue this

https://blog.csdn.net/cddcj/article/details/80866902

課外書——自控力(斯坦福大學最受歡迎的心理學課程)

01我要做,我不要,我想要:什么是意志力?為什么意志力?為什么意志力至關重要? 核心思想: 意志力實際上是“我要做”、“我不要”和“我想要”這三種力量。它們協同努力,讓我們變成更好…

Docker運行GUI軟件的方法

轉自 https://www.csdn.net/article/2015-07-30/2825340 簡介: Docker通過namespace將容器與主機上的網絡和運行環境進行了隔離,默認情況下,在容器中運行帶界面的軟件在外部是看不到的。在這個分享中,將介紹通過共享X11套接字讓外…

JS正則表達式驗證數字非常全

驗證數字的正則表達式集 驗證數字:^[0-9]*$ 驗證n位的數字:^\d{n}$ 驗證至少n位數字:^\d{n,}$ 驗證m-n位的數字:^\d{m,n}$ 驗證零和非零開頭的數字:^(0|[1-9][0-9]*)$ 驗證有兩位小數的正實數:^[0-9](.[0-9…

VMware VIC

vSphere Integrated Containers - a short intro High-Level view of VCH Networking vSphere Integrated Containers Roles and Personas 參考鏈接:https://vmware.github.io/vic-product/assets/files/html/1.4/轉載于:https://www.cnblogs.com/vincenshen/p/9715…

vue new vue

https://www.jianshu.com/p/5ca5f40e4810

MySQL 之group_concat_max_length Mac 版

用過MySQL的人都知道,group_concat這個函數是有最大值限制的,當超過了最大值就會報錯! 在window下的處理方法就是修改MySQL的配置文件my.ini,在其中添加 #group_concat_max_len setting group_concat_max_len 1024000000 然…

Locust學習總結分享

簡介: Locust是一個用于可擴展的,分布式的,性能測試的,開源的,用Python編寫框架/工具,它非常容易使用,也非常好學。它的主要思想就是模擬一群用戶將訪問你的網站。每個用戶的行為由你編寫的py…

IDEA系列(四)一部署war 和 war exploded的區別

war模式:將WEB工程以包的形式上傳到服務器 ; war exploded模式:將WEB工程以當前文件夾的位置關系上傳到服務器;(1)war模式這種可以稱之為是發布模式,看名字也知道,這是先打成war包&a…

Vue常用7個屬性

https://www.cnblogs.com/bgwhite/p/9297221.html