<强> 1。MVC使用强>
在研究源码之前,先来回顾以下springmvc是如何配置的,这将能使我们更容易理解源码。
1.1 web . xml
<代码> & lt; servlet> & lt; servlet-name> mvc-dispatcher & lt; servlet-class> org.springframework.web.servlet.DispatcherServlet & lt; !——配置springMVC需要加载的配置文件 spring-dao.xml、spring-service.xml spring-web.xml Mybatis——比;春天→springmvc ——比; & lt; init-param> & lt; param-name> contextConfigLocation & lt; param-value>类路径:春天/spring - * .xml & lt;/init-param> & lt;/servlet> & lt; servlet-mapping> & lt; servlet-name> mvc-dispatcher & lt; !——默认匹配所有的请求——比; & lt; url-pattern>/& lt;/url-pattern> & lt;/servlet-mapping> 代码>
值的注意的是contextConfigLocation和DispatcherServlet(用此类来拦截请求)的引用和配置。
1.2 spring-web.xml
<代码> & lt; !——配置SpringMVC——比; & lt; !——1。开启SpringMVC注解模式——比; & lt; !——简化配置: (1)自动注册DefaultAnootationHandlerMapping, AnotationMethodHandlerAdapter (2)提供一些列:数据绑定,数字和日期的格式@NumberFormat @DateTimeFormat, xml、json默认读写支持 ——比; & lt; mvc:注解驱动/比; & lt; !——2 .静态资源默认servlet配置 (1)加入对静态资源的处理:js, gif, png (2)允许使用“/弊稣逵成? ——比; & lt; mvc: default-servlet-handler/比; & lt; !——3。配置jsp显示ViewResolver——比; & lt; bean类=皁rg.springframework.web.servlet.view.InternalResourceViewResolver”比; & lt;属性名=" viewClass " value=" https://www.yisu.com/zixun/org.springframework.web.servlet.view.JstlView "/比; & lt;属性名="前缀" value=" https://www.yisu.com/WEB-INF/jsp/"/比; & lt;属性名="后缀" value=" https://www.yisu.com/zixun/.jsp "/比; & lt;/bean> & lt; !——4。扫描web相关的bean——比; & lt;上下文:component-scan基础包=" com.xxx.fantj。网络”/祝辞代码>
值的注意的是InternalResourceViewResolver,它会在ModelAndView返回的试图名前面加前缀前上缀,在后面加载后缀指定后缀。
SpringMvc主支源码分析
引用《春天在行动》中的一张图来更好的了解执行过程:
面试官:你分析过SpringMVC的源码吗?