首页 > 代码库 > 浅析Spring MVC工作机制

浅析Spring MVC工作机制

1.如何使用Spring MVC?

  • 在web.xml中配置一个DispatcherServlet
  • DispatchServlet初始化的时候会去寻找一个在应用程序的WEB-INF目录下的配置文件,命名规则是:servletName-servlet.xml  其中servletName是在部署描述符(web.xml)中Dispatcherservlet的名字。
  • 可以在所谓的配置文件中,扩展路径映射关系、定义视图解析器、定义业务逻辑处理流程规则。
  • 此外,也可以把Spring MVC的配置文件放在应用程序目录中的任何地方且名称任意,此时用servlet定义的init-param元素指定配置文件的位置与名字 如下所示
 1 <servlet>
 2         <servlet-name>springmvc</servlet-name>
 3         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
 4         <init-param>
 5             <param-name>contextConfigLocation</param-name>
 6             <param-value>classpath:spring/springmvc-context.xml</param-value>
 7         </init-param>
 8         <load-on-startup>1</load-on-startup>
 9     </servlet>
10     <servlet-mapping>
11         <servlet-name>springmvc</servlet-name>
12         <url-pattern>/</url-pattern>
13     </servlet-mapping>

2.SpringMVC如何工作?

Spring MVC如何工作,主要看DispatcherServlet代码。

在Servlet的init方法调用时DispatcherServlet执行Spring MVC的初始化工作。初始化工作在initStrategies中完成,code如下:

 1 protected void initStrategies(ApplicationContext context) {
 2         initMultipartResolver(context); //文件上传服务
 3         initLocaleResolver(context);//国际化问题
 4         initThemeResolver(context);//定义主题
 5         initHandlerMappings(context);//定义用户设置的请求映射关系
 6         initHandlerAdapters(context);//根据handler的类型定义不同的处理规则 ???
 7         initHandlerExceptionResolvers(context);//handler出错时使用
 8         initRequestToViewNameTranslator(context);//将指定的ViewName,加上前缀或者后缀
 9         initViewResolvers(context);//将View解析成页面
10         initFlashMapManager(context);
11     }

 

浅析Spring MVC工作机制