SpringBoot 使用WebMvcConfigurer处理请求
1. 简介
WebMvcConfigurer配置类其实是Spring内部的一种配置方式,采用JavaBean的形式来代替传统的xml配置文件形式进行针对框架个性化定制。
基于java-based方式的spring mvc配置,需要创建一个配置类并实现WebMvcConfigurer 接口,WebMvcConfigurerAdapter 抽象类是对WebMvcConfigurer接口的简单抽象(增加了一些默认实现),但在在SpringBoot2.0及Spring5.0中WebMvcConfigurerAdapter已被废弃 。
官方推荐直接实现WebMvcConfigurer或者直接继承WebMvcConfigurationSupport
- 方式一:实现WebMvcConfigurer接口(推荐)
- 方式二:继承WebMvcConfigurationSupport类
WebMvcConfigurer 提供的接口列表如下:
public interface WebMvcConfigurer {default void configurePathMatch(PathMatchConfigurer configurer) {}default void configureContentNegotiation(ContentNegotiationConfigurer configurer) {}default void configureAsyncSupport(AsyncSupportConfigurer configurer) {}default void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {}default void addFormatters(FormatterRegistry registry) {}default void addInterceptors(InterceptorRegistry registry) {}default void addResourceHandlers(ResourceHandlerRegistry registry) {}default void addCorsMappings(CorsRegistry registry) {}default void addViewControllers(ViewControllerRegistry registry) {}default void configureViewResolvers(ViewResolverRegistry registry) {}default void addArgumentResolvers(List<HandlerMethodArgumentResolver> resolvers) {}default void addReturnValueHandlers(List<HandlerMethodReturnValueHandler> handlers) {}default void configureMessageConverters(List<HttpMessageConverter<?>> converters) {}default void extendMessageConverters(List<HttpMessageConverter<?>> converters) {}default void configureHandlerExceptionResolvers(List<HandlerExceptionResolver> resolvers) {}default void extendHandlerExceptionResolvers(List<HandlerExceptionResolver> resolvers) {}@Nullabledefault Validator getValidator() {return null;}@Nullabledefault MessageCodesResolver getMessageCodesResolver() {return null;}
}
2. 接口实现
2.1 addInterceptors
- 作用: 拦截所有接口请求,常见的JWT校验便是在这里实现
- 实例:
@Configuration
public class MvcConf implements WebMvcConfigurer {@Overridepublic void addInterceptors(InterceptorRegistry registry) {//拦截所有接口,/test2除外registry.addInterceptor(new MyInterceptor()).addPathPatterns("/**").excludePathPatterns("/test2","/login.do");}
}
写个简易拦截器 MyInterceptor :
public class MyInterceptor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {String token = request.getHeader("token");return StrUtil.isNotEmpty(token);}
}
2.2 addResourceHandlers
- 作用: 重写静态资源配置,自定义静态资源路径的映射
- 示例:
@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("/img/**").addResourceLocations("classpath:/static/image/");}
这段代码,所有从/img路径访问的图片,都会从 /static/image目录去查找
2.3 addCorsMappings
- 作用: 配置跨域请求的问题
- 示例:
@Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/**");}
2.4 addViewControllers
- 作用: 页面跳转转换,可以替代controller接口的方法
- 示例:
@Overridepublic void addViewControllers(ViewControllerRegistry registry) {registry.addViewController("/login2.do").setViewName("login");}
SpringBoot 使用WebMvcConfigurer处理请求相关推荐
- Springboot如何利用http请求控制器
写好了接口,现在想用postman测试一下这个接口是否正确,想请问怎么传入请求参数?先谢谢了! Springboot如何利用http请求控制器 >> java 这个答案描述的挺清楚的: h ...
- spring-boot使用springAOP对接口请求、异常、响应进行日志记录
spring-boot使用springAOP对接口请求.异常.响应进行日志记录 日志切面类LogAspect 请求control异常全局监控 日志切面类LogAspect /*** @Author: ...
- SpringBoot允许跨域请求
在前后端分离的架构中,允许跨域请求是一个很重要的设置.SpringBoot项目中允许跨域请求比较简单,只需要我们定义好配置类即可. 在com.example.csdn.config包里面创建CorsC ...
- springboot +element-axios跨域请求
1.初始化element项目 1.1:vue init webpage '项目名称' 1.2:npm i element-ui -S 1.3:在main.js添加 import ElementUI f ...
- SpringBoot+Vue使用Get请求时提示:Error parsing HTTP request header
场景 vue中使用axios请求springboot的后台接口时需要传递一个int数组. 原本使用的是get请求. export function handCompletedRequest(ids) ...
- springboot获取多个请求参数_springboot获取URL请求参数的多种方式
1.直接把表单的参数写在Controller相应的方法的形参中,适用于get方式提交,不适用于post方式提交. /** * 1.直接把表单的参数写在Controller相应的方法的形参中 * @pa ...
- springboot 配置多个请求服务代理
springboot 配置服务代理 有时候,我们可能有下边这样的需求: 即,针对于分布式服务,我们会有多种业务接口服务,但是服务器上可能只要求开放一个服务的端口,比如上图的restA项目端口是对外开放 ...
- springboot 接口文档 请求 enum_Spring Boot集成SpringFox 3:生成Swagger接口文档
SpringFox介绍 SpringFox是一个开源的API Doc的框架, 它的前身是swagger-springmvc,可以将我们的Controller中的方法以文档的形式展现.官方定义为:Aut ...
- springboot+aop切点记录请求和响应信息
本篇主要分享的是springboot中结合aop方式来记录请求参数和响应的数据信息:这里主要讲解两种切入点方式,一种方法切入,一种注解切入:首先创建个springboot测试工程并通过maven添加如 ...
最新文章
- 如何和相亲对象无限聊天?程序员甩了这份架构图……| 每日趣闻
- 基于.net standard 的动态编译实现
- sql LEFT JOIN RIGHT JOIN(左连接)(mysql)
- 数据集永久下架,微软不是第一个,MIT 也不是最后一个
- editplus配置刷新
- 粒子群优化算法matlab实现,粒子群优化算法的MATLAB程序实现+源程序
- windows磁盘空间释放(二)
- H3C防火墙安全域知识、远程登陆及web页面
- 静候Google I/O 2014大会开幕
- 基于Opencv3的活动轮廓模型--CV, RSF and DRLSE
- Bmob后台云数据库
- 工业自动化数据采集方案
- Docker安装Rally
- Android获取当前位置(GPS和网络定位)
- 福州室外婚纱摄影哪家好?
- VMWare快照原理(写时复制)?快照保护、快照克隆的作用?
- html里div水平居中,html+css div水平居中的几种方法
- java.lang.IllegalStateException错误
- java——随机口算题(加减乘除随机)
- 史上前端面试题(HTML)
热门文章
- SAP 月结F.19与GR/IR
- SAP发布S4/HANA 意义超过R3
- ABAP--Smart Forms多语言翻译
- mysql里面的sql_mysql工作中的sql
- 创业阶段如何找客户_初创企业在不同的创业阶段:如何做好市场营销?
- 计算机网络系统结构分析 pdf,计算机网络(实验三:数据包结构分析).pdf
- 计算机组成原理汇编程序实验,计算机组成原理汇编实验(资料).pdf
- android sdk v28,Android Studio Gradle Build失败 – 要求提供不存在的sdk版本
- python从字符串解析方法名
- python 使用 sorted 对 列表嵌套元组的数据进行排序