国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Tomcat類加載機制

2019-11-18 15:36:16
字體:
來源:轉載
供稿:網友

    Tomcat Server在啟動的時候將構造一個ClassLoader樹,以保證模塊的類庫是私有的
    Tomcat Server的ClassLoader結構如下:

代碼
  1.     Bootstrap  
  2.                       
  3.     System   
  4.             
  5.     Common  
  6.      /             /  
  7. Catalina  Shared  
  8.                       /    /  
  9.        WebApp1  WebApp2  

其中:
- Bootstrap - 載入JVM自帶的類和$java_HOME/jre/lib/ext/*.jar
- System - 載入$CLASSPATH/*.class
- Common - 載入$CATALINA_HOME/common/...,它們對TOMCAT和所有的WEB APP都可見
- Catalina - 載入$CATALINA_HOME/server/...,它們僅對TOMCAT可見,對所有的WEB APP都不可見
- Shared - 載入$CATALINA_HOME/shared/...,它們僅對所有WEB APP可見,對TOMCAT不可見(也不必見)
- WebApp - 載入ContextBase?/WEB-INF/...,它們僅對該WEB APP可見

每個運行中的線程都有一個成員contextClassLoader,用來在運行時動態地載入其它類,系統默認的 contextClassLoader是systemClassLoader,所以一般而言java程序在執行時可以使用JVM自帶的類、$ JAVA_HOME/jre/lib/ext/中的類和$CLASSPATH/中的類,可以使用Thread.currentThread(). setContextClassLoader(...);更改當前線程的contextClassLoader,來改變其載入類的行為

ClassLoader被組織成樹形,一般的工作原理是:
1) 線程需要用到某個類,于是contextClassLoader被請求來載入該類
2) contextClassLoader請求它的父ClassLoader來完成該載入請求
3) 假如父ClassLoader無法載入類,則contextClassLoader試圖自己來載入
注重:WebApp?ClassLoader的工作原理和上述有少許不同:
它先試圖自己載入類(在ContextBase?/WEB-INF/...中載入類),假如無法載入,再請求父ClassLoader完成

由此可得:
- 對于WEB APP線程,它的contextClassLoader是WebApp?ClassLoader
- 對于Tomcat Server線程,它的contextClassLoader是CatalinaClassLoader

 進入討論組討論。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 屯留县| 昌吉市| 施秉县| 富宁县| 柏乡县| 旺苍县| 新建县| 鸡西市| 蒙山县| 伽师县| 北辰区| 长岭县| 广德县| 穆棱市| 台安县| 肃南| 达孜县| 泸州市| 惠州市| 江都市| 城步| 泸西县| 廊坊市| 长宁县| 石楼县| 萨迦县| 德州市| 诸暨市| 印江| 宝山区| 井研县| 潮安县| 麻栗坡县| 牙克石市| 安丘市| 吉安市| 昌江| 临澧县| 文安县| 永丰县| 桓仁|