[發明專利]一種web容器中的模塊加載方法和裝置有效
| 申請號: | 201611261971.7 | 申請日: | 2016-12-30 |
| 公開(公告)號: | CN108279940B | 公開(公告)日: | 2020-12-15 |
| 發明(設計)人: | 趙斌;汪輝;張良發;周俊杰 | 申請(專利權)人: | 華為技術有限公司 |
| 主分類號: | G06F9/445 | 分類號: | G06F9/445 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 518129 廣東*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 web 容器 中的 模塊 加載 方法 裝置 | ||
本發明公開了一種web容器中的模塊加載方法和裝置,以解決現有的Web容器啟動過程中類查找速度較慢的問題。該方法為,在第一web應用的web容器啟動過程中,獲取預先配置的所述第一web應用的各模塊的黑名單和/或白名單;若獲取到各模塊的白名單,當通過通用類加載器查找類時,在白名單中包括的各模塊中執行類查找和加載;若獲取到各模塊的黑名單、且未獲取到白名單,當通過通用類加載器查找類時,遍歷對應的通用類加載路徑下的各個模塊是否包括在所述黑名單中,若對應的通用類加載路徑下的任一模塊包括在所述黑名單中,則不針對所述任一模塊執行類查找,這樣能夠黑白名單的模塊配置類加載范圍,減少類搜索耗時,提升啟動速度。
技術領域
本發明涉及計算機技術領域,尤其涉及一種web容器中的模塊加載方法和裝置。
背景技術
當今互聯網上充斥著無數的web網站,每一個Web網站就是一個Web應用,而每個應用都會部署在一個web容器上。Web容器實際上就是一個Java運行時(Runtime)環境,提供了應用的類加載(classloader)、Java Servlet API的初始化及發布,并提供基于超文本傳輸協議(Hyper Text Transfer Protocol,HTTP)/安全套接字層超文本傳輸協議(Hyper TextTransfer Protocol over Secure Socket Layer,HTTPS)的一系列訪問接口。
Web容器是一個基礎的類(class)運行環境,每一段Java程序都會以.class形式發布,并歸檔在一系列jar、war、sar類型的軟件包中。
Web容器在啟動時需要使用各自的類加載器,從自定義的類查找目錄下查找需要的class文件及資源文件,經過class裝載、鏈接、初始化后,Java虛擬機(Java VirtualMachine,JVM)中將會緩存一份描述所有加載class的元信息結構,通過該結構可以獲取class的結構信息,如:構造函數、屬性、方法,進而JVM可以獲取class實例并進行方法調用。Web容器的啟動過程就是一系列類加載及類初始化的過程,在每個類初始化動作固定時如果最快的查找到類很大程度決定了容器的啟動速度。
JVM的類加載采用父類委托機制,如圖1所示,當JVM需要加載一個class時,會按圖1中的多層類加載關系,先從父classloader中加載,如果加載不到該class,會使用對應的子classloader繼續到對應目錄下進行class查找及加載。
經過多年的互聯網發展,很多Web應用的功能越來越全面,進而帶來的系統復雜度也越來越高,每個系統都有幾十甚至上百個子模塊構建完成,部署在同一個Web容器內,系統涉及的模塊不斷增長,一個應用上線前需要集成數百個模塊,應用WEB/lib目錄下存在成百上千個jar包,包含了上萬、幾十萬個class。當JVM進行類查找時,每個class都需要從這幾百、幾千個jar中遍歷查找,速度很慢。假設系統啟動使用了1000個class,一共有500個jar包,那會進行1000*500次的jar包遍歷,而每個jar包內部還是幾十、幾百次的class查找。
發明內容
本發明實施例提供一種web容器中的模塊加載方法和裝置,以解決現有的web容器啟動過程中類查找速度較慢的問題。
第一方面,本發明實施例提供一種web容器中的模塊加載方法,包括:
在第一web應用的web容器啟動過程中,獲取預先配置的所述第一web應用的各模塊的黑名單和/或白名單;
若獲取到所述第一web應用的各模塊的白名單,當通過通用類加載器查找類時,在所述白名單中包括的各模塊中執行類查找和加載;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于華為技術有限公司,未經華為技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201611261971.7/2.html,轉載請聲明來源鉆瓜專利網。





