本节将对AnnotationConfigReactiveWebServerApplicationContext进行分析,它会在响应式的Web应用中初始化,即Web应用类型为org.springframework.boot.WebApplicationType#REACTIVE时,该对象的成员变量和AnnotationConfigServletWebServerApplicationContext的成员变量一样。在AnnotationConfigReactiveWebServerApplicationContext中出现的几个方法和AnnotationConfigServletWebServerApplicationContext中的方法也相似,本节不做详细分析。
接下来将对ReactiveWebServerApplicationContext进行分析,在ReactiveWebServerApplicat-ionContext中主要关注的方法是createWebServer,其他的代码处理流程比较简单,本节不做分析。关于createWebServer方法的代码如下:
在createWebServer方法中主要的处理流程如下。
(1)获取Web服务管理器。
(2)如果Web服务管理器为空则进行如下操作:
①创建步骤记录器,并标记为创建状态;
②获取Web服务工厂的Bean名称;
③获取响应式Web服务工厂;
④标记工厂信息;
⑤获取是否是懒加载的标记;
⑥创建Web服务管理器;
⑦向Bean工厂注册单例对象;
⑧标记结束状态。
(3)初始化属性源。