1. 程式人生 > >springboot和servlet和tomcat

springboot和servlet和tomcat

存在 bean 實例 clas factory mbed actor tomcat bsp

之前的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