从Servlet 到ApplicationContext
我們已經(jīng)了解SpringMVC 的入口是DispatcherSerlvet,我們實現(xiàn)了DispatcherServlet 的init()方法。在init()方法中完成了IOC 容器的初始化。而在我們使用Spring 的經(jīng)驗中,我們見得最多的是ApplicationContext,似乎Spring 托管的所有實例Bean 都可以通過調(diào)用getBean()方法來獲得。那么ApplicationContext 又是從何而來的呢?從Spring 源碼中我們可以看到,DispatcherServlet 的類圖如下:
DispatcherServlet 繼承了FrameworkServlet , FrameworkServlet 繼承了HttpServletBean ,HttpServletBean 繼承了HttpServlet。在HttpServletBean 的init()方法中調(diào)用了FrameworkServlet的initServletBean()方法,在initServletBean()方法中初始化WebApplicationContext 實例。在
initServletBean()方法中調(diào)用了DispatcherServlet 重寫的onRefresh()方法。在DispatcherServlet的onRefresh()方法中又調(diào)用了initStrategies()方法,初始化SpringMVC 的九大組件。
其實,上面復(fù)雜的調(diào)用關(guān)系,我們可以簡單的得出一個結(jié)論:就是在Servlet 的init 方法中初始化了IOC容器和SpringMVC 所依賴的九大組件。
總結(jié)
以上是生活随笔為你收集整理的从Servlet 到ApplicationContext的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IDEA 集成Lombok 插件-使用插
- 下一篇: 高仿真的类-业务逻辑注入接口