Tomcat的类加载器
看完了Java類裝載器,我們再來看看應用服務器(Tomcat)對類加載器的使用,每個應用服務器都有一套自己的類加載器體系,從而與Java的類加載器區別開以達到自己與應用程序隔離的目的.Tomcat的類加載器體系為:Bootstrap--->System--->Common---->Catalina,SharedShared------>Webapp1,Webapp2 .....
下面是對每個類加載器的定義:
1.Bootstrap 加載器在這里是Java里的Bootstrap和ExtClassLoader的總稱,負責加載Java核心包的類, 和<Java_Home>/jre/lib/ext目錄下的類.通常我們開發人員并不關心.我想只要是java程序這些肯定是必要的
2.System 就是系統加載器,一般是AppClassLoader,負責加載ClassPath環境變量設置目錄下的值,這個我們開發人員會非常關注,但是在 Tomcat里面,雖然用AppClassLoader類加載器,但我們設置的ClassPath對它沒有影響(如果有影響,那就麻煩了,將會導致 Tomcat運行不穩定),為什么呢,因為tomcat每次啟動的時候都會在命令行窗口中都會重新設置Classpath值 為:<catalina_Home>/bin/bootstrap.jar和<java_Home>/lib /tools.jar,所以這里面的類一般對應用程序不可見的.除非你設置了
3.Common類加載器負責加載TomcatHOME/common/class下的.Class文件和common/lib中的jar包,這些類可以被Tomcat內核和每個Web應用程序都可以看見,一般放公用的一些重要的類,如servlet.jar等
4.Catalina類加載器從server/classes和server/lib下加載類,Catalina加載的類只對Tomcat服務器內核可見,對Web應用程序不可見,對于運行Tomcat內核的線程,它的上下文類加載器就是Catalina類加載器
5.Shared類加載器負責從share/classes和share/lib中加載類,它加載的類只對所有Web應用程序有效,對Tomcat不可見.
6.WebappX類加載器負責加載Web應用程序的/web-INF/classes和lib目錄下的類,只對當前Web應用程序有效,對其他Web應用程序無效,對于運行每個Web應用程序的線程,他們的上下文類加載器就是它們各自的WebappX類加載器總結:從以上6點可以看出Tomcat提供了完整的類加載器體系,并且分工非常的明確,因而非常訪問我們進行Web應用程序的設置和部署.
轉載于:https://www.cnblogs.com/kabi/p/5199021.html
總結
以上是生活随笔為你收集整理的Tomcat的类加载器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于python
- 下一篇: codeforces 几道题目