當(dāng)前位置:
首頁(yè) >
前端技术
> javascript
>内容正文
javascript
SpringBoot 使用WebMvcConfigurer处理请求
生活随笔
收集整理的這篇文章主要介紹了
SpringBoot 使用WebMvcConfigurer处理请求
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1. 簡(jiǎn)介
WebMvcConfigurer配置類其實(shí)是Spring內(nèi)部的一種配置方式,采用JavaBean的形式來(lái)代替?zhèn)鹘y(tǒng)的xml配置文件形式進(jìn)行針對(duì)框架個(gè)性化定制。
基于java-based方式的spring mvc配置,需要?jiǎng)?chuàng)建一個(gè)配置類并實(shí)現(xiàn)WebMvcConfigurer 接口,WebMvcConfigurerAdapter 抽象類是對(duì)WebMvcConfigurer接口的簡(jiǎn)單抽象(增加了一些默認(rèn)實(shí)現(xiàn)),但在在SpringBoot2.0及Spring5.0中WebMvcConfigurerAdapter已被廢棄 。
官方推薦直接實(shí)現(xiàn)WebMvcConfigurer或者直接繼承WebMvcConfigurationSupport
- 方式一:實(shí)現(xiàn)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. 接口實(shí)現(xiàn)
2.1 addInterceptors
- 作用: 攔截所有接口請(qǐng)求,常見(jiàn)的JWT校驗(yàn)便是在這里實(shí)現(xiàn)
- 實(shí)例:
寫個(gè)簡(jiǎn)易攔截器 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
- 作用: 重寫靜態(tài)資源配置,自定義靜態(tài)資源路徑的映射
- 示例:
這段代碼,所有從/img路徑訪問(wèn)的圖片,都會(huì)從 /static/image目錄去查找
2.3 addCorsMappings
- 作用: 配置跨域請(qǐng)求的問(wèn)題
- 示例:
2.4 addViewControllers
- 作用: 頁(yè)面跳轉(zhuǎn)轉(zhuǎn)換,可以替代controller接口的方法
- 示例:
總結(jié)
以上是生活随笔為你收集整理的SpringBoot 使用WebMvcConfigurer处理请求的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Linux生产环境CPU占用过高排查步骤
- 下一篇: SpringBoot 序列化与反序列化日