【五】springboot启动源码 - onRefresh
创始人
2025-06-01 10:47:48

onRefresh 源码解析

Initialize other special beans in specific context subclasses.

核心是创建一个web服务容器(并未在这个方法启动)
在这里插入图片描述
createWebServer第182行,获取ServletWebServerFactory的具体实现
在这里插入图片描述
getWebServerFactory方法,通过ioc容器获取ServletWebServerFactory实现实例,在这里我指定的server服务是undertow
在这一步之前,ServletWebServerFactory是没有加入IOC容器的,在这里进行初始化
在这里插入图片描述
但是在bdMap中,之前通过自动装配,已经添加了org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryAutoConfiguration。

在这里插入图片描述
它是通过加载org.springframework.boot.autoconfigure.AutoConfiguration.imports文件,装载ServetWeb的自动配置类ServletWebServerFactoryAutoConfiguration
在这里插入图片描述
进入ServletWebServerFactoryAutoConfiguration,可以看到@Import引入的类,以及@EnableConfigurationProperties(ServerProperties.class),
在这里插入图片描述
ServerProperties用来获取服务相关的配置,如server.undertow.threads.io: 16
因为我们用的undertow,进入ServletWebServerFactoryConfiguration.EmbeddedUndertow
是ServletWebServerFactoryConfiguration的一个子类。以UndertowServletWebServerFactory作为ServletWebServerFactory的实现注入到IOC中
在这里插入图片描述
回到createWebServer方法-第184行,factory.getWebServer,通过Factory来获取webServer
在这里插入图片描述
在createManager过程中,还会调用ServletContextInitializer的实现onStartup,在这个回调,我们可以添加监听器、过滤器以及Servlet
在这里插入图片描述

回到createWebServer方法第199行,initPropertySources方法
用于Environment中MutablePropertySources中。key为servletContextInitParams的数据
在这里插入图片描述
替换前
在这里插入图片描述
替换后
在这里插入图片描述
总结:

  1. 做webServer容器初始化,还未启动
  2. 回调ServletContextInitializer的onStartup

相关内容

热门资讯

上海熟食“排队王”属于它,开门... 早晨8点不到,年的味道在淮海路光明邨的队伍里苏醒。 淮海中路588号,光明邨的屋檐下,年的序幕是由...
云食光|寻味云南 食遇元江 一... 元江是天然温室 四季花果不断 民族烟火交织 今天,我们循着香气 给大家推荐四种元江招牌美食 1 朵朵...
新春家宴必做!干锅鸭掌软糯脱骨... 春节将至,家家户户开始忙碌于准备丰盛的年夜饭。你是否已经想好今年的团圆菜品?干锅鸭掌,作为一道经典的...
原创 家... 每当闻到那股浓郁的、带着焦糖香气的甜味,思绪总会不由自主地飘回儿时的厨房。那时候,物质或许没有现在这...
火锅串串制作培训哪家好?靠谱选... 在餐饮行业蓬勃发展的当下,火锅串串凭借其独特的风味和广泛的受众基础,成为众多创业者眼中的热门项目。然...