重点说明dispatcher-servlet.xml,applicationContext.xml,以及web.xml中与Spring有关的配置。
1. web.xml
dispatcher Servlet
Spring MVC自带了一个开箱即用的servlet,全名为org.springframework.web.servlet.DispatcherServlet,下面需要设置一个<load-on-startup>
元素,存在并当值为1时,则在应用程序启东时装载这个servlet并调用init()方法初始化,而不是在第一个请求时加载,否则第一次请求时就无法起到请求转发的作用。映射与定义dispatcherSerlvet
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
其中还有一个<url-pattern>
元素,意为转发哪一些URL结构的请求,当使用“/”时,表示所用请求都将先转发至dispatcherServlet,也有程序猿喜欢使用.do与.htm等后缀。
- context-param
context-param用于指定Spring IOC容器读取BeanDefinition的XML文件路径,即存在<bean></bean>
的文件,也就是后面的applicationContext.xml。有一个内容为<param-name>contextConfigLocation</param-name>
,此标识必须与另一个文件的一个元素匹配,后面会说到。
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:/applicationContext.xml</param-value>
</context-param>
2.dispatcher-servlet.xml
- mvc:annotation-driven
Spring在配置此项后会自动注册DefaultAnnotationHandlerMapping与AnnotationMethodHandlerAdapter两个Spring提供的Bean,以可以使用注解
<mvc:annotation-driven/>
context:annotation-config
隐式的向spring MVC注册4个BeanPostProcess,之后可以解析一些注释,例如@Autowired
、@Resouse
等context:component-scan base-package=”/”
配置扫描路径,Spring会自动扫描base-package下的文件,如果存在使用了注释的类或方法,则注册它们为Bean,配置了此项,则不必配置context:annotation-config选项
<context:component-scan base-package="org.log.*"/>
- ViewResolver
DispatcherSerlvet靠这个配置项解析在SpringMVC中Controller层返回给View层的页面信息,一般为String类型的路径,可以在返回值前后自动加上前缀与后缀
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/WEB-INF/"/>
<property name="suffix" value=".jsp"/>
</bean>
3.applicationContext.xml
- mvc:resourse mapping=”/user/js/all” location=”/user/js”
配置用于自动加载静态资源,如css、js、html
<mvc:resources mapping="/user/js/**" location="/user/js/"/>
<mvc:resources mapping="/user/css/**" location="/user/css/" />
<mvc:resources mapping="/user/images/**" location="/user/images/" />
- bean id=”dataSource”
这个Bean元素用于更快捷、更简便的去注册数据库驱动
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost/users"/>
<property name="username" value="administrator"/>
<property name="password" value="administrator"/>
</bean>
- mybatis
此处再列出两个把Spring与Mybatis兼容的配置Bean
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="configLocation" value="classpath:/mybatis.xml"/>
<property name="mapperLocations" value="classpath:/mapper/*.xml"/>
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="org.log.mapper"/>
<property name="markerInterface" value="org.log.mapper.SqlMapper"/>
</bean>
本文章只能告诉你大概要使用Spring MVC所需的配置项,如果想要搞懂整个SpringMVC,这是远远不够,只是当xml文件中的配置报错时,很难找出错误在哪里,这时就可以参考此篇,看看是配置项少了,还是没有配置对。