技术开发 频道

Spring MVC快速入门

    我们通过表 1说明每种类型组件的装配过程,带(☆)的组件仅有一个,而带(★)的组件可以拥有多个,它们构成一个List:

表 1 装配各型组件的过程
组件类型
发现机制
文件上传解析器
1)查找名为multipartResolver类型为MultipartResolver的Bean作为该类型组件;
2)没有默认的实现类。
所以如果你没有在上下文中显式定义这一类型的组件,DispatcherServlet中将不会拥有该类型的组件。
本地化解析器
1)查找名为localeResolver类型为LocaleResolver的Bean作为该类型·组件;
2)如果1)找不到,使用默认的实现类(AcceptHeaderLocaleResolver)创建该类型的组件。
主题解析器
1)查找名为themeResolver类型为LocaleResolver的Bean作为组件;
2)如果1)找不到,使用默认的实现类(FixedThemeResolver)。
处理器映射器
(★)
1)如果detectAllHandlerMappings属性为true(默认为true),根据类型匹配(HandlerMapping)机制查找上下文及父Spring容器中所有匹配的Bean,将它们作为该类型组件;
2)如果detectAllHandlerMappings属性为false,查找名为handlerMapping类型为HandlerMapping的Bean作为该类型组件;
3)如果通过以上方式都找不到,使用BeanNameUrlHandlerMapping实现类创建创建该类型的组件。
处理器适配器
(★)
1)如果detectAllHandlerAdapters属性为true(默认为true),根据类型匹配(HandlerAdapter)机制查找上下文及父Spring容器中所有匹配的Bean,将它们作为该类型组件;
2)如果detectAllHandlerAdapters属性为false,查找名为handlerAdapter类型为HandlerAdapter的Bean作为该类型组件;
3)如果通过以上方式都找不到,使用DispatcherServlet.properties配置文件中指定的三个实现类分别创建一个适配器,添加到适配器列表中。
处理器异常解析器
(★)
1)如果detectAllHandlerExceptionResolvers属性为true(默认为true),根据类型匹配(HandlerExceptionResolver)机制查找上下文及父Spring容器中所有匹配的Bean作为该类型组件;
2)如果detectAllHandlerExceptionResolvers属性为false,查找名为handlerExceptionResolver类型为HandlerExceptionResolver的Bean作为该类型组件;
3)如果通过以上方式都找不到,查找DispatcherServlet.properties中定义的默认实现类,不过该文件中没有对应处理器异常解析器的默认实现类(你可以更改属性文件)。
视图名翻译器
1)查找名为viewNameTranslator类型为RequestToViewNameTranslator的Bean作为该类型组件;
2)如果1)找不到,使用默认的实现类(DefaultRequestToViewNameTranslator)创建该类型的组件。
 
视图解析器
(★)
1)如果detectAllViewResolvers属性为true(默认为true),根据类型匹配(ViewResolver)机制查找上下文及父Spring容器中所有匹配的Bean作为该类型组件;
2)如果detectAllViewResolvers属性为false,查找名为viewResolver类型为ViewResolver的Bean作为该类型组件;
3)如果通过以上方式都找不到,通过DispatcherServlet.properties中定义的默认实现类(InternalResourceViewResolver)创建该类型的组件。

    总体来说,当DispatcherServlet初始化完成后,就会或查找上下文的组件Bean,或根据默认配置文件实例化组件实例,装配到DispatcherServlet中了。通过上表,我们可以得出这样的结论:单一实例组件(带☆的)必须使用约定的Bean名称进行配置,而多实例组件(速 ★的)可以不指定Bean名称由DispatcherServlet自动进行探测。

一个包含以上步骤的实例

    在学习了Spring MVC框架的结构后,我们通过一个简单的实例引出Spring MVC开发的基本过程。开发一个Spring MVC程序至少需要以下的步骤:

1. 编写处理请求逻辑的处理器;
2. 在DispatcherServlet上下文对应的Spring配置文件中配置处理器;
3. 配置一个视图解析器,对处理器返回的ModelAndView进行解析;
4. 编写一个视图对象(一般是JSP),将响应展现给客户。
0
相关文章