tomcat8源码教程之catalina_IT学习者—关注程序员的就业、工作和生活 

您现在的位置:主页 > 源码解读 > >

tomcat8源码教程之catalina



时间: 2015-06-17 23:14     来源 : IT学习者      点击:

关键词: tomcat8    tomcat8源码    tomcat8教程   


目录页:《tomcat8源码分析


首先看下Catalina这个类中主要的方法:

itxxz.com



说白了,也就是启动、等待、停止几种情况,说到Catalina,不得不提到Bootstrap,这两个类可谓互为唇齿。

Bootstrap是为加载Catalina而准备的一套线程守护类,之所以绕个弯路需要通过Bootstrap来加载,这是因为某些依赖jar包或者加载器(比如:XML parser)需要灵性加载。为了松耦合性,在启动了时候,就包装了一个叫做Bootstrap的东东。

来看下Bootstrap中的start和stop



在start方法里用到了init()方法,我们看下具体实现:
  IT学习者(www.itxxz.com)

  1. /** 
  2.  * Initialize daemon. 
  3.  */  
  4. public void init() throws Exception {  
  5.   
  6.     initClassLoaders();  
  7.   
  8.     Thread.currentThread().setContextClassLoader(catalinaLoader);  
  9.   
  10.     SecurityClassLoad.securityClassLoad(catalinaLoader);  
  11.   
  12.     // Load our startup class and call its process() method  
  13.     if (log.isDebugEnabled())  
  14.         log.debug("Loading startup class");  
  15.     Class<?> startupClass =  
  16.         catalinaLoader.loadClass  
  17.         ("org.apache.catalina.startup.Catalina");  
  18.     Object startupInstance = startupClass.newInstance();  
  19.   
  20.     // Set the shared extensions class loader  
  21.     if (log.isDebugEnabled())  
  22.         log.debug("Setting startup class properties");  
  23.     String methodName = "setParentClassLoader";  
  24.     Class<?> paramTypes[] = new Class[1];  
  25.     paramTypes[0] = Class.forName("java.lang.ClassLoader");  
  26.     Object paramValues[] = new Object[1];  
  27.     paramValues[0] = sharedLoader;  
  28.     Method method =  
  29.         startupInstance.getClass().getMethod(methodName, paramTypes);  
  30.     method.invoke(startupInstance, paramValues);  
  31.   
  32.     catalinaDaemon = startupInstance;  
  33.   
  34. }  

itxxz.com
到这里可以清楚的看到,用到了大量的Class、getClass()、classLoad这种字眼,

说明在初始化的时候需要加载很多配置文件的,也就是引用tomcat的lib下jar包里的class类。

至此便可以理解为何在前一篇中通过Catalina来启动tomcat时,会加载很多相关的jar依赖了:



 

itxxz.com






文章除注明转载外,均为IT学习者原创或编译
欢迎任何形式的转载,但务必请以超链接形式注明出处
本文出自:IT学习者
链接地址:http://www.itxxz.com/a/code/2015/0616/817.html



微信公众号:喝咖啡的螃蟹

喝咖啡的螃蟹
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-->