<?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:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!--
配置自动扫描的包
该标签是对包进行扫描,实现注解驱动Bean的定义,同时将Bean自动注入容器中使用,
即标注了SpringMVC注解(如@Controller)的Bean生效。
若没有配置该标签,那么标注@Controller的Bean仅仅是一个普通的JavaBean,
而不是一个可以处理请求的控制器
-->
<context:component-scan base-package="com.springmvc"/>
<!--
MVC注解驱动
该标签会自动注册DefaultAnnotationHandlerMapping(处理器映射器)
与AnnotationMethodHandlerAdapter(处理器适配器)两个Bean。
SpringMVC需要通过这两个Bean实例来完成对@Controller和@ResquestMapping等注解的支持,
从而找出URL与handle method的关系并予以关联。
-->
<mvc:annotation-driven/>
<!--
该元素将在SpringMVC上下文中定义一个DefaultServletHttpRequestHandler,
它会对进入DispatcherServlet的请求进行筛查。
如果发现是没有经过映射的请求, 就将该请求交给Web应用服务器默认的Sevlet处理。
如果不是静态资源的请求, 才会由DispatcherServlet继续处理。
如果没有添加该元素,Web容器启动时会抛出如下异常:
“No mapping found for HTTP request with URI...”
-->
<mvc:default-servlet-handler/>
<!--配置视图解析器,将控制器方法返回的逻辑视图解析为物理视图-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/myJsp/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
<!--
定义多个拦截器,顺序执行
-->
<mvc:interceptors>
<!-- 拦截器1 -->
<mvc:interceptor>
<mvc:mapping path="/**"/> <!--配置拦截器作用的路径-->
<!--定义在<mvc:interceptor>下面的拦截器,表示对匹配路径请求才进行拦截-->
<bean class="com.springmvc.interceptor.MyInterceptor1" />
</mvc:interceptor>
<!-- 拦截器2 -->
<mvc:interceptor>
<mvc:mapping path="/hello"/>
<bean class="com.springmvc.interceptor.MyInterceptor2"></bean>
</mvc:interceptor>
<!--使用bean直接定义在<mvc:interceptors>下面的拦截器将拦截所有请求-->
<bean class="com.springmvc.interceptor.MyInterceptor1"/>
</mvc:interceptors>
</beans>
重温Spring框架(五、SpringMVC之十九:拦截器之三:多个拦截器的执行流程)
最新推荐文章于 2023-09-14 13:49:07 发布