定制SpringMVC:
1)、@EnableWebMvc:开启SpringMVC的定制配置功能,相当于mvc:annotation-driven;
2)、配置组件(视图解析器、视图映射、静态资源映射、拦截器…)
修改之前的AppConfig文件
@ComponentScan(value = "com.kerwin",includeFilters =
{
@Filter(type = FilterType.ANNOTATION,classes = Controller.class)
},useDefaultFilters = false)
@EnableWebMvc
public class AppConfig implements WebMvcConfigurer{
//定制
//1.0视图解析器
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
registry.jsp("/WEB-INF/views/",".jsp");
}
//2.0静态资源访问
//交给tomcat粗粒
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
//3.0、添加拦截器
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new MyIntercepter()).addPathPatterns("/**");
}
}
最后拦截器的配置
public class MyIntercepter implements HandlerInterceptor {
//在目标方法之前执行
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("preHandle");
return true;
}
//在目标方法执行正确以后执行
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
System.out.println("postHandle");
}
//页面响应以后执行
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
System.out.println("afterCompletion");
}
}
因为WebMvcCongigurerAdapter类在spring2.0后不能使用,所以我们使用最初的WebMvcConfigurer接口。