建议收藏学习 一篇文章弄懂SpringBoot中WebMvcConfigurer

一:简介WebMvcConfigurer是SpringBoot的一个配置类 , 采用JAVABean的形式来代替传统的xml配置文件形式 , 简化了开发中类的配置 , 可以自定义一些Handler , Interceptor , ViewResolver , MessageConverter 。可能大家之前一直用的是WebMvcConfigurer的空实现类WebMvcConfigurerAdapter , 但是在Java8后这个类就被弃用了 。

建议收藏学习 一篇文章弄懂SpringBoot中WebMvcConfigurer

文章插图
 
二:WebMvcConfigurer功能所以我们今天主要讲WebMvcConfigurer , 从图片上我们可以看出这个接口的主要提供了以下功能:
【建议收藏学习 一篇文章弄懂SpringBoot中WebMvcConfigurer】1.配置自定义拦截器
2.配置CORS实现跨域
3.视图控制器配置
4.配置MessageConverter
建议收藏学习 一篇文章弄懂SpringBoot中WebMvcConfigurer

文章插图
 
三:功能简单介绍接下来我们就依次简单讲解一下这几个功能如何实现 。
3.1 , 配置自定义拦截器:
这里我们继承了HandlerInterceptorAdapter拦截器接口实现自定义拦截器 。
建议收藏学习 一篇文章弄懂SpringBoot中WebMvcConfigurer

文章插图
 
然后我们再实现WebMvcConfigurer接口 , 里面有一个addPathPatterns方法这个方法就是用于设置我们的自定义拦截器 , 可以在这个方法中设置拦截路径等 。
@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(new ReqInterceptor()).addPathPatterns("/**");}3.2 , CORS实现跨域:
如果不知道跨域是什么意思的小伙伴可以自己去百度一下 , 其实就是一个浏览器从一个域名跨域到另一个域名会有问题 , 这时我们就可以在这个类的addCorsMAppings方法中配置一下 。
/*** 跨域支持*/@Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/**").allowedOrigins("*") //浏览器允许所有的域访问 / 注意 * 不能满足带有cookie的访问,Origin 必须是全匹配.allowCredentials(true) // 允许带cookie访问.allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS").allowedHeaders("token").maxAge(3600);}3.3 , 视图控制器配置:
这个配置用于直接通过路径请求某个页面 , 经常用来配置网站的首页 。
/*** 视图控制器配置*/@Overridepublic void addViewControllers(ViewControllerRegistry registry) {super.addViewControllers(registry);registry.addViewController("/").setViewName("/index");}3.4 , 配置MessageConverter:
这个配置一般用的不多 , 他主要用来配置API请求返回时采用什么类型的转换器进行转换 。我们经常用到的就是fastJson转换了 。
建议收藏学习 一篇文章弄懂SpringBoot中WebMvcConfigurer

文章插图
 
 




    推荐阅读