spring mvc的配置

spring mvc一般的配置文件如下

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">

	<!-- 启动注解扫描功能  -->
	<context:component-scan base-package="com.my" use-default-filters="false">
		<!--只扫描控制器  -->
		<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
	</context:component-scan>
	
	<!--配置视图解析器,方便页面返回  -->
	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/"/>
        <property name="suffix" value=".jsp"/>
	</bean>
	
	<!--两个标准配置  -->
	<!-- 将springmvc不能处理的请求交给tomcat -->
	<mvc:default-servlet-handler/>
	<!-- 能支持springmvc更高级的一些功能,JSR303校验,快捷的ajax...映射动态请求 -->
	<mvc:annotation-driven/>
</beans>

与Spirng配置文件相似,Spring MVC配置文件中有要启动注解扫描功能,让容器自动扫描包含注解的类,然后将其注册到Bean容器中。为了避免重复扫描,Spring MVC配置文件只负责扫描控制器Controller(控制层),而将Dao和Service的扫描由Spring配置文件完成。
这里对该配置文件进行讲解,在< context:component-scan >元素中,base-package属性指定要扫描的包名,如这里设置为com.my,即表示扫描com.my包及其子包中的类。use-default-filters属性用于指定是否自动扫描带有的@Component、@Repository、@Service、@Service和@Controller的类,默认为true,即默认扫描。这里设置成false,及不自动扫描。< context:include-filter >子元素用来指定需要扫描的类,expression属性设置为Controller,表示扫描包含@Controller注解的类,然后注册到Bean容器中。
在Controller控制器执行后,为方便页面的返回,所以需要配置视图解析器。这里使用InternalResourceViewResolver类,它包含prefix和suffix两个属性,分别指定返回的URL的前缀和后缀。
如果在web.xml中设置了Spring MVC捕获Web容器所有的请求,包括静态请求。Spring MVC会将这些静态资源当做普通请求进行处理,如果找不到相应的请求映射则会报错,因此需要添加< mvc:default-servlet-handler / > 元素,该元素会对进入DispatcherServlet的URL进行筛查,如果发现是静态资源的请求,则将该请求转由Web应用服务器默认的进行Servlet处理,否则由DispactherServlet继续处理。
< mvc:annotation-driven / >:该标签会自动注册DefaultAnnotationHandlerMapping(处理器映射器)与AnnotationMethodHandlerAdapter(处理器适配器)两个Bean。Spring MVC需要通过两个Bean实例来完成对@Controller和@RequestMapping等注解的支持。

你可能感兴趣的:(spring mvc的配置)