2020国产成人精品视频,性做久久久久久久久,亚洲国产成人久久综合一区,亚洲影院天堂中文av色

分享

tomcat context.xml配置<Loader delegate="true" />解讀

 一本正經(jīng)地胡鬧 2019-08-30

 Loader對(duì)象可出現(xiàn)在Context中以控制Java類的加載。屬性:delegate,true代表使用正式的Java代理模式(先詢問(wèn)父類的加載器);false代表先在Web應(yīng)用程序中尋找。默認(rèn)值:false

首先,你需要了解一下JVM的Classloader機(jī)制(詳細(xì)請(qǐng)自行g(shù)oogle之)。
簡(jiǎn)而言之,JVM的classloader加載繼承關(guān)系分為BootstarpClassLoader --> ExtClassLoader --> SystemClassLoader,應(yīng)用的WebAppClassLoader繼承自SystemClassLoader,在加載具體某個(gè)類時(shí),一般會(huì)先委托給父類ClassLoader,當(dāng)父類ClassLoader無(wú)法加載成功時(shí),才會(huì)再由子類ClassLoader嘗試加載,這就是所謂的delegate機(jī)制。

其次,Tomcat在jvm的ClassLoader機(jī)制上增加了幾個(gè)繼承層次。
SystemClassLoader --> CommonClassLoader -->(ServerClassLoader | SharedClassLoader --> WebAppClassLoader)。
CommonClassLoader用來(lái)加載${CATALINA_HOME}/conf/catalina.properties中common.loader配置目錄下的類文件,一般是用來(lái)加載${CATALINA_HOME}/lib下的文件。該loader加載的類為tomcat服務(wù)器和tomcat下面的所有webApp所共享。
ServerClassLoader用來(lái)加載${CATALINA_HOME}/conf/catalina.properties中server.loader配置目錄下的類文件,一般是用來(lái)加載${CATALINA_HOME}/server下的文件。該loader加載的類為tomcat服務(wù)器所獨(dú)有核心類,tomcat下面的WebApp無(wú)法訪問(wèn)。
SharedClassLoader用來(lái)加載${CATALINA_HOME}/conf/catalina.properties中shared.loader配置目錄下的類文件,一般是用來(lái)加載${CATALINA_HOME}/shared下的文件。該loader加載的類為tomcat下面的所有webApp所共享。
WebAppClassLoader用來(lái)加載${CATALINA_HOME}/webapps/目錄下每個(gè)WebApp應(yīng)用的/WEB-INF/class,/WEB-INF/lib的類文件,每個(gè)WebApp對(duì)應(yīng)一個(gè)WebAppClassLoader,用來(lái)加載其所需要的類文件。

最后,說(shuō)一下delegate配置的意義。
True,表示tomcat將遵循JVM的delegate機(jī)制,即一個(gè)WebAppClassLoader在加載類文件時(shí),會(huì)先遞交給SharedClassLoader加載,SharedClassLoader無(wú)法加載成功,會(huì)繼續(xù)向自己的父類委托,一直到BootstarpClassLoader,如果都沒(méi)有加載成功,則最后由WebAppClassLoader自己進(jìn)行加載。
False,表示將不遵循這個(gè)delegate機(jī)制,即WebAppClassLoader在加載類文件時(shí),會(huì)優(yōu)先自己嘗試加載,如果加載失敗,才會(huì)沿著繼承鏈,依次委托父類加載。

在此說(shuō)一下配置為False需要注意的問(wèn)題:一旦配置為False,如果你在WebApp中自己定義了一個(gè)java.lang.String,則這個(gè)String類會(huì)有可能覆蓋掉jdk中的String類,這也許不是你想要的結(jié)果。另外對(duì)于多個(gè)WebApp公用jar包,你可能會(huì)放到${CATALINA_HOME}/shared目錄中共享,但是一不小心在應(yīng)用的/WEB-INF/lib中也包含了一個(gè)同名的但版本不一致的jar的話,這就有可能會(huì)導(dǎo)致很多奇怪的問(wèn)題。

轉(zhuǎn)自https://segmentfault.com/q/1010000000155690/a-1020000000155732

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多