springMVC三大组件配置
- 概述
- 1. springMVC默认加载组件
- 2.配置文件解读
- 3.配置视图解析器
概述
上篇分析了springMVC的架构流程,这篇对三大组件的配置文件解读一下。
1. springMVC默认加载组件
记得在springMVC入门小实例中,指定的springMVC并没有添加这三大组件的配置信息就可以使用这些组件, 仅仅配置了扫描@controler的注解, 为什么? 是因为框架本身就有一个配置文件,在我们没有配置的时候会有默认的配置信息,从而加载这些组件。
配置文件的位置如下:
2.配置文件解读
打开DispatcherServlet.properties文件解读三大组件总体如下:
- HandlerMapping 处理器映射器:
如上图可以看到默认的有两个
1.org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping 是配置文件式的, 目前使用很少,不去研究了。
2.org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping 基于注解的方式。
进入这里类里可以发现官方已经废弃了
as of Spring 3.2, in favor of
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping
翻译:字spring3.2以后 , 就推荐使用RequestMappingHandlerMapping
处理器适配器有三种方式分别是继承父类,实现接口,和注解,
现在也是使用注解的方式。现在也是推荐使用RequestMappingHandlerAdapter
以上的两种适配器使用推荐的话需要在springmvc.xml配置文件中添加配置, 有两种方法
第一种 , 直接配置bean(不常使用)
<!-- 处理器映射器 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>
<!-- 处理器适配器 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>
第二种, 注解驱动 (常用)
<mvc:annotation-driven />
3.配置视图解析器
回顾入门例子里的 , controller中的ModelAndView中setViewName中的值:
这个值 带全路径,并且还需要带上后缀, 如果jsp文件夹下有很多页面的话这样写起来岂不是会有很多的重复。 所以要考虑通用的配置,下边就是配置视图解析器。
<!-- 视图解释器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
注: 不管如何配置,这里的前缀和后缀要和ModelAndView或者返回的字符串能拼凑成一个正确完整的路径才可以。
配置好以上视图解析器以后 ModelAndView中的setViewName就可以直接写成如下:(目的就是简化了配置)
附:
将一个文件夹中的所有试图文件放置在WEB-INF文件夹下是一个非常好的做法,这样可以防止通过URL直接访问页面。
进阶需要一步一步来, 稳扎稳打! 下篇学习springMVC之参数绑定。
你坚持的这个过程也是在向目标走进的一个过程。