SpringBoot 1.5.x 嵌入式servlet容器启动原理以及如何使用外部servlet容器
一、SpringBoot嵌入式servlet容器启动原理
1、嵌入式servlet容器的选择
SpringBoot里面已经集成了内置的servlet容器,默认为TomcatEmbeddedServletContainerFactory,可以根据导入相应的servlet容器jar包,进行更换servlet容器。
那么嵌入式servlet容器则是由嵌入式servlet容器工厂创建,在本例中TomcatEmbeddedServletConatinerFactory中通过getEmbeddedServletContainer()方法创建TomcatEmbeddedServletContainer,将创建好的Tomcat传入getTomcatEmbeddedServletContainer,此时Tomcat servlet容器创建并启动
2、嵌入式servlet容器配置原理
在EmbeddedServletContainerAutoConfiguration中我们导入了BeanPostProcessorsRegistrar组件的后置处理器定制器
在registerBeanDefinitions中,将定制器更新为EmbeddedServletContainerCustomizerBeanPostProcessor
在EmbeddedServletContainerCustomizerBeanPostProcessor类中通过postProcessBeforeInitialization()方法,来判断嵌入式servlet容器是否是ConfigurableEmbeddedServletContainer可配置的嵌入式