在springboot中,是融合了tomcat的启动与加载的,那么关于tomcat的启动与加载的入口就是研究的开始;
首先,EmbeddedWebApplicationContext类中,重写了AbstractApplicationContext的finishRefresh()方法,如下:
protected void finishRefresh() {
super.finishRefresh();
EmbeddedServletContainer localContainer = startEmbeddedServletContainer();
if (localContainer != null) {
publishEvent(
new EmbeddedServletContainerInitializedEvent(this, localContainer));
}
在finishRefresh方法中,第二行的startEmbeddedServletContainer()方法就是tomcat启动的入口:
private EmbeddedServletContainer startEmbeddedServletContainer() {
EmbeddedServletContainer localContainer = this.embeddedServletContainer;
if (localContainer != null) {
localContainer.start();
}
return localContainer;
}