SpringBoot启动过程之web,servlet/filter等
最近调试springboot的启动过程.看各种事件.
ServletWebServerApplicationContext.onRefresh -->createWebServer() -->this.webServer = factory.getWebServer(getSelfInitializer()); -->getSelfInitializer() -->selfInitialize ServletWebServerApplicationContext.selfInitialize -->ServletWebServerApplicationContext.getServletContextInitializerBeans -->ServletContextInitializerBeans.ServletContextInitializerBeans() -->ServletContextInitializerBeans.addServletContextInitializerBeans -->ServletContextInitializerBeans.getOrderedBeansOfType(ServletContextInitializer) -->beanFactory.getBeanNamesForType(type-->ServletContextInitializer)
这个返回各种filter的名字.就是filter加载位置
//////////////////////////////////////////////////////////////////////
// 这一段, md, 谁能看懂. boolean matchFound = (allowEagerInit || !isFactoryBean || (dbd != null && !mbd.isLazyInit()) || containsSingleton(beanName)) && (includeNonSingletons || (dbd != null ? mbd.isSingleton() : isSingleton(beanName))) && isTypeMatch(beanName, type); if (!matchFound && isFactoryBean) { // In case of FactoryBean, try to match FactoryBean instance itself next. beanName = FACTORY_BEAN_PREFIX + beanName; matchFound = (includeNonSingletons || mbd.isSingleton()) && isTypeMatch(beanName, type); } if (matchFound) { result.add(beanName); }
看不出有啥特征, servlet之类的.