日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

SpringBoot 使用WebMvcConfigurer处理请求

發布時間:2025/3/19 javascript 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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");} 與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的SpringBoot 使用WebMvcConfigurer处理请求的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。