当前位置:   article > 正文

WebMvcConfigurer(一)介绍

WebMvcConfigurer(一)介绍

一、简介

WebMvcConfigurer配置类其实是Spring内部的一种配置方式,采用JavaBean的形式来代替传统的xml配置文件形式进行针对框架个性化定制,可以自定义一些Handler,Interceptor,ViewResolver,MessageConverter。基于java-based方式的spring mvc配置,需要创建一个配置类并实现WebMvcConfigurer 接口;

在Spring Boot 1.5版本都是靠重写WebMvcConfigurerAdapter的方法来添加自定义拦截器,消息转换器等。SpringBoot 2.0 后,该类被标记为@Deprecated(弃用)。官方推荐直接实现WebMvcConfigurer或者直接继承WebMvcConfigurationSupport,方式一实现WebMvcConfigurer接口(推荐),方式二继承WebMvcConfigurationSupport类

二、接口

  1. public interface WebMvcConfigurer {
  2. void configurePathMatch(PathMatchConfigurer var1);
  3. void configureContentNegotiation(ContentNegotiationConfigurer var1);
  4. void configureAsyncSupport(AsyncSupportConfigurer var1);
  5. void configureDefaultServletHandling(DefaultServletHandlerConfigurer var1);
  6. void addFormatters(FormatterRegistry var1);
  7. void addInterceptors(InterceptorRegistry var1);
  8. void addResourceHandlers(ResourceHandlerRegistry var1);
  9. void addCorsMappings(CorsRegistry var1);
  10. void addViewControllers(ViewControllerRegistry var1);
  11. void configureViewResolvers(ViewResolverRegistry var1);
  12. void addArgumentResolvers(List<HandlerMethodArgumentResolver> var1);
  13. void addReturnValueHandlers(List<HandlerMethodReturnValueHandler> var1);
  14. void configureMessageConverters(List<HttpMessageConverter<?>> var1);
  15. void extendMessageConverters(List<HttpMessageConverter<?>> var1);
  16. void configureHandlerExceptionResolvers(List<HandlerExceptionResolver> var1);
  17. void extendHandlerExceptionResolvers(List<HandlerExceptionResolver> var1);
  18. Validator getValidator();
  19. MessageCodesResolver getMessageCodesResolver();
  20. }

其中,常用的是

  1. /* 拦截器配置 */
  2. void addInterceptors(InterceptorRegistry var1);
  3. /* 视图跳转控制器 */
  4. void addViewControllers(ViewControllerRegistry registry);
  5. /**
  6. *静态资源处理
  7. **/
  8. void addResourceHandlers(ResourceHandlerRegistry registry);
  9. /* 默认静态资源处理器 */
  10. void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer);
  11. /**
  12. * 这里配置视图解析器
  13. **/
  14. void configureViewResolvers(ViewResolverRegistry registry);
  15. /* 配置内容裁决的一些选项*/
  16. void configureContentNegotiation(ContentNegotiationConfigurer configurer);
  17. /** 解决跨域问题 **/
  18. public void addCorsMappings(CorsRegistry registry) ;
1、addInterceptors拦截器
  • addInterceptor:需要一个实现HandlerInterceptor接口的拦截器实例
  • addPathPatterns:用于设置拦截器的过滤路径规则;addPathPatterns("/**")对所有请求都拦截
  • excludePathPatterns:用于设置不需要拦截的过滤规则
  1. @Override
  2. public void addInterceptors(InterceptorRegistry registry) {
  3. super.addInterceptors(registry);
  4. registry.addInterceptor(new TestInterceptor()).addPathPatterns("/**").excludePathPatterns("/emp/toLogin","/emp/login","/js/**","/css/**","/images/**");
  5. }
 2、addCorsMappings跨域
  1. @Override
  2. public void addCorsMappings(CorsRegistry registry) {
  3. super.addCorsMappings(registry);
  4. registry.addMapping("/cors/**")
  5. .allowedHeaders("*")
  6. .allowedMethods("POST","GET")
  7. .allowedOrigins("*");
  8. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/525742
推荐阅读
相关标签
  

闽ICP备14008679号