国产探花免费观看_亚洲丰满少妇自慰呻吟_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

 進入討論組討論。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 奉新县| 长白| 都兰县| 正蓝旗| 永春县| 巩义市| 和林格尔县| 措美县| 郓城县| 威宁| 南昌县| 承德市| 阳曲县| 盘锦市| 安义县| 望江县| 佛坪县| 措美县| 南阳市| 桐柏县| 广宗县| 昆明市| 泰顺县| 镇巴县| 德惠市| 若尔盖县| 格尔木市| 西青区| 清河县| 怀柔区| 涡阳县| 涟水县| 灵宝市| 洛阳市| 嘉兴市| 昌宁县| 延川县| 类乌齐县| 通河县| 彭州市| 尼勒克县|