日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Spring源码分析【1】-Tomcat的初始化

發布時間:2023/11/27 生活经验 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring源码分析【1】-Tomcat的初始化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


org.apache.catalina.startup.ContextConfig.configureStart()



org.apache.catalina.startup.ContextConfig.webConfig()



進入org.apache.catalina.startup.ContextConfig.processServletContainerInitializers


processServletContainerInitializers參考:Spring源碼分析【1】-Tomcat和Sping的連接點


回到org.apache.catalina.startup.ContextConfig.webConfig()

加載/WEB-INF/classes下的資源


org.apache.catalina.startup.ContextConfig.processAnnotationsWebResource



con目錄下2個子目錄




遞歸所有的目錄


繼續


找到第一個文件,非文件夾的



然后進入到

else if (webResource.isFile() &&
? ? ? ? ? ? ? ? webResource.getName().endsWith(".class"))



進入processAnnotationsStream


org.apache.tomcat.util.bcel.classfile.ClassParser.ClassParser()


org.apache.tomcat.util.bcel.classfile.ClassParser.Parser()



org.apache.tomcat.util.bcel.classfile.ClassParser.readID()



java.io.DataInputStream.readInt()



org.apache.tomcat.util.bcel.classfile.ClassParser.readClassInfo



回到processAnnotationsStream



org.apache.catalina.startup.ContextConfig.checkHandlesTypes



org.apache.catalina.startup.ContextConfig.populateJavaClassCache



populateJavaClassCache(javaClass.getSuperclassName());



父類java/lang/Object.class



回到checkHandlesTypes



回到processAnnotationsStream



回到processAnnotationsWebResource



繼續循環遍歷其他的class文件:com\alipay\sign\Base64.class


javaClassCache增加了com.alipay.sign.Base64



如此這般



下一步開始循環自己定義的包,例如這個XXbean.class


org.apache.catalina.startup.ContextConfig.webConfig()


從以上可以看出對于類的加載是按照編譯文件的約定目錄去尋找的


回到org.apache.catalina.startup.ContextConfig.webConfig()



中間一些過程加載XML配置文件暫時先過,到下面這一步:



org.apache.catalina.core.StandardContextaddServletContainerInitializer方法



回到org.apache.catalina.startup.ContextConfig.lifecycleEvent()



回到org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent



fireLifecycleEvent



org.apache.catalina.core.StandardContext.startInternal()



org.springframework.web.SpringServletContainerInitializer.onStartup



得到List<WebApplicationInitializer> initializers


下面是分別對SecurityWebInitializerSpingWebInitializer

SpingWebInitializer的加載參考:Spring源碼分析【3】-SpingWebInitializer的加載


總結

以上是生活随笔為你收集整理的Spring源码分析【1】-Tomcat的初始化的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。