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