SpringMVC啓動與Spring啓動差別分析

上一篇:模擬SpringBoot編寫一個嵌套Tomcat的工具類(方便調試)工具

在進入真正的分析SpringMVC接收並響應請求以前看看二者在啓動的時候會有哪些不一樣,相信對後面的分析也會有很多幫忙,看看兩個啓動類的類圖,在類圖中標註了一些不一樣的地方.net

左側是Spring啓動類AnnotationConfigApplicationContext,右側是SpringMVC啓動類AnnotationConfigWebApplicationContext調試

SpringMVC類層次結構可要深好多,總的來講差別並不大,只不過一些相同的功能在不一樣地方實現的,而且新增了一部分WEB應用的組件blog

1.Spring是在實例化AnnotationConfigApplicationContext的時候就完成了reader和scanner的實例化,SpringMVC是在refresh()-refreshBeanFactory()時才完成的get

2.Spring是調用AnnotationConfigApplicationContext.register方法完成配置類的分析與註冊,SpringMVC是在refresh()-refreshBeanFactory()時才完成的servlet

3.SpringMVC啓動以後BeanPostProcessor多了ServletContextAwareProcessorit

4.SpringMVC啓動以後,singletonObjects中多了contextParametersio

5.SpringMVC啓動以後,environment.propertySources中多了servletContextInitParams和servletConfigInitParams兩個PropertySourcetable

 

總結:區別並不大,只不過加了Servlet相關的組件到容器中,DefaultListableBeanFactory和reader\scanner工做方式仍是保持不變的。容器

相關文章
相關標籤/搜索