Spring - IoC 源码阅读笔记:AbstractApplicationContext - onRefresh()

in Tech Java

前言

Spring Boot Web 使用的 IoC 实现类为 ServletWebServerApplicationContext,该类继承了 GenericWebApplicationContext 并重写了 onRefresh() 方法。

onRefresh() 方法

    @Override
    protected void onRefresh() {
        super.onRefresh();
        try {
            // 创建运行 Web 服务器。如Tomcat、Jetty、Undertow等
            // 该方法会触发 SpringBoot 的自动配置加载 DispatcherServlet 到 Web 容器中。
            // 这里不展开阅读了。后续会另起一篇笔记记录。
            createWebServer();
        }
        catch (Throwable ex) {
            throw new ApplicationContextException("Unable to start web server", ex);
        }
    }

onRefresh() 方法

GenericWebApplicationContext#onRefresh

    @Override
    protected void onRefresh() {
        // 初始化主题资源
        this.themeSource = UiApplicationContextUtils.initThemeSource(this);
    }