Tomcat启动过程源码分析
2020-06-04 14:44:30 16 举报
Tocmat 启动阶段流程 源码分析
作者其他创作
大纲/内容
Bootstrap#main
Server初始化 getServer().init()
反射
createStartDigester();
Load daemon.
init
Start the Catalina daemon
Catalina#load()
抽象类LifecycleBase#init
生命周期抽象实现类LifecycleBase的init方法
找到并解析tomcat的配置文件 server.xml
configFile()
load
daemon = bootstrap
具体实现类StandardService
抽象方法,交由子类具体实现 - 属于设计模式中的模板模式
digester.parse(inputSource)
核心步骤
Catalina#start
engine.init(); executor.init();mapperListener.init(); for (Connector connector : connectors) { connector.init();}
initInternal()
daemon.start()
bootstrap.init();
实现类StandardServer ---------初始化子容器--------- for (Service service : services) { service.init(); } 支持配置多个Service
解析 xml 重点关注返回的对象 root
生命周期的init接口方法
StandardService.init
Service初始化service.init()
Catalina#setParentClassLoader
Catalina#load
组件的初始化统一受LifeCycleBase抽象类的统一管理
init还是接口方法,还是会走上面的LifeCycleBase抽象类中的相同的逻辑
初始Catalina
start
daemon.load(args)
StandardServer#initInternal()
0 条评论
下一页