您的位置:首页 > 运维架构 > Tomcat

tomcat启动源码(1)

2016-09-06 00:00 302 查看
摘要: tomcat启动

tomcat启动流程
1.入口函数就是BootStrap--main方法
2.初始化并启动
-----创建BootStrap对象,调用init方法完成初始化
setCatalinaHome();--设置home目录:逻辑:如果设置了catalina.home属性,就用这个,如果没有就用user.dir(用户根目录)作为home目录,自动设置catalina.home
setCatalinaBase()---设置base目录(也就是项目默认目录):逻辑如果设置了catalina.base,就用这个,否则就用跟catalina.home相同的目录
initClassLoaders()---初始化classload类加载器,tomcat有自己的类加载器StandardClassLoader,用来加载web项目
Thread.currentThread().setContextClassLoader(catalinaLoader)---将catalinaLoader类加载器设置到当前线程中去
startupClass.newInstance()--使用自定义的类加载器加载Catalina类,并通过反射创建对象
startupInstance.getClass().getMethod(methodName, paramTypes)---通过反射给Catalina对象设置父setParentClassLoader类加载器,值就是StandardClassLoader
catalinaDaemon = startupInstance----catalina守护进程赋予Catalina对象
-----根据传入的参数 start stop启动或停止服务
daemon.setAwait(true);---通过反射执行Catalina对象的setAwait方法,等待
daemon.load(args)---通过反射执行Catalina对象的load方法,参数就是start--stop
daemon.start()---通过反射执行Catalina对象的start方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息