SpringMVC的定制配置需要继承一个WebMvcConfigurerAdapter类,重写这个类的方法,完成常用配置。
@Configuration
@EnableWebMvc
@ComponentScan("com.netant.spring4")
public class WebMvcConfig extends WebMvcConfigurerAdapter{
视图解析器
/** 视图解析器 */
@Bean
public InternalResourceViewResolver viewResolver(){
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setPrefix("/WEB-INF/classes/views/"); // 运行时的目录结构
viewResolver.setSuffix(".jsp");
viewResolver.setViewClass(JstlView.class);
return viewResolver;
}
静态资源映射
/** 静态资源映射 */
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/assets/**") // 对外暴露的访问路径
.addResourceLocations("classpath:/assets/"); // 文件放置 的目录
}
拦截器
public class MyInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
// TODO Auto-generated method stub
return false;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {
// TODO Auto-generated method stub
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
throws Exception {
// TODO Auto-generated method stub
}
}
/** 拦截器 */
@Bean
public MyInterceptor myInterceptor(){ // 配置拦截器的Bean
return new MyInterceptor();
}
@Override
public void addInterceptors(InterceptorRegistry registry) { // 注册拦截器
registry.addInterceptor(myInterceptor());
}
WebMvcConfig.java 完整的配置类(还不全,后期补充)
@Configuration
@EnableWebMvc
@ComponentScan("com.netant.spring4")
public class WebMvcConfig extends WebMvcConfigurerAdapter{
/** 视图解析器 */
@Bean
public InternalResourceViewResolver viewResolver(){
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setPrefix("/WEB-INF/classes/views/"); // 运行时的目录结构
viewResolver.setSuffix(".jsp");
viewResolver.setViewClass(JstlView.class);
return viewResolver;
}
/** 静态资源映射 */
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/assets/**") // 对外暴露的访问路径
.addResourceLocations("classpath:/assets/"); // 文件放置 的目录
}
/** 拦截器 */
@Bean
public MyInterceptor myInterceptor(){ // 配置拦截器的Bean
return new MyInterceptor();
}
@Override
public void addInterceptors(InterceptorRegistry registry) { // 注册拦截器
registry.addInterceptor(myInterceptor());
}
}