springboot和servlet和tomcat
Posted chuliang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot和servlet和tomcat相关的知识,希望对你有一定的参考价值。
之前的spring项目是tomcat实例化filter,servlet,初始化两个spring容器,然后调用springmvc
现在是springboot先初始化容器,再在onfresh方法中初始化tomcat容器和servlet容器。那么数据和引用是怎么流动的呢?
refresh()------>onRefresh()------>createEmbeddedServletContainer()---->{embeddedServletContainer通过下面说的注册的TomcatEmbeddedServletContainerFactory,获取EmbeddedServletContainer,}
////EmbeddedServletContainerAutoConfiguration是spring.factory中的自动注解,作用有
@Import(BeanPostProcessorsRegistrar.class)这个class名字起的挺大气的,但是是内部类,所以没关系的,实现了BeanFactoryAware接口,咦,ImportBeanDefinitionRegistrar接口是怎么加入spring工厂的呢?先不管,会注册一个
EmbeddedServletContainerCustomizerBeanPostProcessor,这个是beanpostprocessor,可能是在获取tomcat相关bean的时候使用的。
注册一个TomcatEmbeddedServletContainerFactory(或者jetty或者Undertow,根据第三方jar包存在与否,先不管)
//DispatcherServletAutoConfiguration同理,也会注册一个dispatchServlet到容器中
以上是关于springboot和servlet和tomcat的主要内容,如果未能解决你的问题,请参考以下文章
SpringBoot2使用Jetty容器(替换默认Tomcat)