详解WebMvcConfigurer用法

springboot通过AsyncConfigurer接口实现异步线程池自动化配置组件 springboot提供了org.springframework.scheduling.annotation.AsyncConfigurer接口让开发人员可以自定义线程池执行器;框架默认提供了一个空的实现类AsyncConfigurerSupport,不过两个方法体内部提供的都是空实现; 1.首先看下AsyncConfigurer接口 public interface AsyncConfigurer { /** * 方法返回一个实际执行线程的线程池 */ @Nullable defaul. 阅读详情
AI摘要

本文详细解释了SpringFramework中的WebMvcConfigurer接口,包括路径匹配规则、内容协商、异步请求支持、格式化器、拦截器、视图控制器、参数解析器、返回值处理器和消息转换器的配置方法。

目录

一、路径匹配规则configurePathMatch

二、配置内容协商 configureContentNegotiation

三、配置异步请求的支持configureAsyncSupport  

四、配置格式化器addFormatters 

五、注册简单的视图控制器addViewControllers

六、注册自定义的参数解析器addArgumentResolvers

七、注册自定义的返回值处理器addReturnValueHandlers  

八、配置消息转换器configureMessageConverters  


WebMvcConfigurer 是 Spring Framework 中的一个接口,它提供了一种扩展 Spring MVC 配置的方式。通过实现 WebMvcConfigurer 接口,你可以定制化 Spring MVC 的配置,例如添加拦截器、资源处理、视图解析器等。

一、路径匹配规则configurePathMatch

configurePathMatch 是 WebMvcConfigurer 接口中的一个方法,它用于配置 Spring MVC 中的路径匹配规则。主要用于配置路径匹配的选项,例如设置路径是否区分大小写、路径后缀是否匹配等。

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.PathMatchConfigurer;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class MyWebMvcConfigurer implements WebMvcConfigurer {

    @Override
    public void configurePathMatch(PathMatchConfigurer configurer) {
        // 设置路径是否区分大小写,默认为 true
        configurer.setUseCaseSensitiveMatch(false);

        // 设置是否在路径匹配时忽略路径后缀,默认为 true
        configurer.setUseTrailingSlashMatch(true);
    }
}

在上述示例中,通过 configurePathMatch 方法设置了两个路径匹配的选项:

  1. setUseCaseSensitiveMatch(false):设置路径是否区分大小写。默认情况下,路径匹配是区分大小写的。如果设置为 false,则表示路径不区分大小写。

  2. setUseTrailingSlashMatch(true):设置是否在路径匹配时忽略路径后缀。默认情况下,路径匹配时会忽略路径后缀。如果设置为 true,则表示路径匹配时考虑路径后缀。

二、配置内容协商 configureContentNegotiation

configureContentNegotiation 是 WebMvcConfigurer 接口中的一个方法,它用于配置内容协商(Content Negotiation)的选项。内容协商是指客户端和服务器之间协商最适合的响应格式的过程。在 Spring MVC 中,可以通过 configureContentNegotiation 方法配置内容协商的相关选项。

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ContentNegotiationConfigurer;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class MyWebMvcConfigurer implements WebMvcConfigurer {

    @Override
    public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
        // 设置默认的内容类型
        configurer.defaultContentType(MediaType.APPLICATION_JSON);

        // 启用路径扩展(例如:/data.json)
        configurer.favorPathExtension(true);

        // 启用参数扩展(例如:/data?format=json)
        configurer.favorParameter(true);

        // 设置参数名称,默认是 "format"
        configurer.parameterName("mediaType");

        // 设置支持的媒体类型
        configurer.mediaType("json", MediaType.APPLICATION_JSON);
        configurer.mediaType("xml", MediaType.APPLICATION_XML);
    }
}

在上述示例中,通过 configureContentNegotiation 方法设置了以下内容协商的选项:

  1. defaultContentType(MediaType.APPLICATION_JSON):设置默认的内容类型为 JSON。

  2. favorPathExtension(true):启用路径扩展,例如允许 /data.json 或 /data.xml。

  3. favorParameter(true):启用参数扩展,例如允许 /data?format=json 或 /data?format=xml。

  4. parameterName("mediaType"):设置参数名称,默认是 "format"。

  5. mediaType("json", MediaType.APPLICATION_JSON) 和 mediaType("xml", MediaType.APPLICATION_XML):设置支持的媒体类型。

三、配置异步请求的支持configureAsyncSupport  

configureAsyncSupport 是 WebMvcConfigurer 接口中的一个方法,它用于配置异步请求的支持。异步请求指的是客户端发起的请求,服务器在处理请求的过程中可以释放对连接的占用,而不必等待请求处理完成。这使得服务器能够更有效地处理大量的并发请求。

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.AsyncSupportConfigurer;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.config.annotation.AsyncSupportConfigurer.DefaultTimeoutConfigurer;

@Configuration
public class MyWebMvcConfigurer implements WebMvcConfigurer {

    @Override
    public void configureAsyncSupport(AsyncSupportConfigurer configurer) {
        // 设置异步请求超时时间(毫秒)
        configurer.setDefaultTimeout(30000);

        // 设置异步请求线程池
        configurer.setTaskExecutor(myAsyncTaskExecutor());

        // 配置异步请求拦截器
        configurer.registerCallableInterceptors(myAsyncCallableInterceptor());
        configurer.registerDeferredResultInterceptors(myAsyncDeferredResultInterceptor());
    }

    // 自定义异步请求线程池
    @Bean
    public AsyncTaskExecutor myAsyncTaskExecutor() {
        ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor();
        taskExecutor.setCorePoolSize(5);
        taskExecutor.setMaxPoolSize(10);
        taskExecutor.setQueueCapacity(25);
        taskExecutor.initialize();
        return taskExecutor;
    }

    // 自定义异步请求拦截器
    @Bean
    public CallableProcessingInterceptor myAsyncCallableInterceptor() {
        return new MyAsyncCallableInterceptor();
    }

    // 自定义DeferredResult拦截器
    @Bean
    public DeferredResultProcessingInterceptor myAsyncDeferredResultInterceptor() {
        return new MyAsyncDeferredResultInterceptor();
    }

    // 示例的自定义CallableProcessingInterceptor实现
    private static class MyAsyncCallableInterceptor implements CallableProcessingInterceptor {
        // 实现自定义逻辑
    }

    // 示例的自定义DeferredResultProcessingInterceptor实现
    private static class MyAsyncDeferredResultInterceptor implements DeferredResultProcessingInterceptor {
        // 实现自定义逻辑
    }
}

上述代码中,通过 configureAsyncSupport 方法配置了异步请求的一些选项:

  1. setDefaultTimeout(30000):设置异步请求的默认超时时间为 30 秒。

  2. setTaskExecutor(myAsyncTaskExecutor()):配置自定义的异步请求线程池。

  3. registerCallableInterceptors(myAsyncCallableInterceptor()):注册自定义的 Callable 请求拦截器。

  4. registerDeferredResultInterceptors(myAsyncDeferredResultInterceptor()):注册自定义的 DeferredResult 请求拦截器。

四、配置格式化器addFormatters 

addFormatters 是 WebMvcConfigurer 接口中的一个方法,用于配置格式化器(Formatter)。格式化器在 Spring MVC 中用于将字符串表示的数据转换成实际的 Java 对象,或者反过来将 Java 对象转换成字符串。

import org.springframework.context.annotation.Configuration;
import org.springframework.format.FormatterRegistry;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
@EnableWebMvc
public class MyWebMvcConfigurer implements WebMvcConfigurer {

    @Override
    public void addFormatters(FormatterRegistry registry) {
        // 添加自定义的日期格式化器
        registry.addFormatter(new MyDateFormatter());

        // 添加自定义的金额格式化器
        registry.addFormatter(new MyCurrencyFormatter());
    }

    // 示例的自定义日期格式化器
    private static class MyDateFormatter implements Formatter<Date> {
        // 实现日期格式化逻辑
    }

    // 示例的自定义金额格式化器
    private static class MyCurrencyFormatter implements Formatter<BigDecimal> {
        // 实现金额格式化逻辑
    }
}

上述代码中,通过 addFormatters 方法配置了两个自定义的格式化器:

  1. MyDateFormatter:自定义的日期格式化器,实现了 Formatter<Date> 接口。

  2. MyCurrencyFormatter:自定义的金额格式化器,实现了 Formatter<BigDecimal> 接口。

五、配置拦截器addInterceptors 

addInterceptors 是 WebMvcConfigurer 接口中的一个方法,它用于配置拦截器(Interceptor)。拦截器可以用于在请求进入处理器(controller)之前或之后执行一些逻辑,例如日志记录、权限验证等。 

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
@EnableWebMvc
public class MyWebMvcConfigurer implements WebMvcConfigurer {

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        // 添加自定义的拦截器
        registry.addInterceptor(new MyInterceptor())
                .addPathPatterns("/api/**")
                .excludePathPatterns("/public/**");
    }

    // 示例的自定义拦截器
    private static class MyInterceptor implements HandlerInterceptor {
        // 在请求处理之前调用
        @Override
        public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
            // 实现拦截器的逻辑
            return true; // 继续执行后续的拦截器或处理器
        }

        // 在请求处理之后调用
        @Override
        public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
            // 实现拦截器的逻辑
        }

        // 在整个请求完成之后调用
        @Override
        public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
            // 实现拦截器的逻辑
        }
    }
}

上述代码中,通过 addInterceptors 方法配置了一个自定义的拦截器 MyInterceptor:

  • addPathPatterns("/api/**"):指定拦截的路径。

  • excludePathPatterns("/public/**"):指定不拦截的路径。

MyInterceptor 类实现了 HandlerInterceptor 接口,其中的三个方法分别在请求处理之前、之后以及整个请求完成之后被调用。你可以在这些方法中实现自定义的拦截逻辑,例如权限验证、日志记录等。

五、注册简单的视图控制器addViewControllers

addViewControllers 是 WebMvcConfigurer 接口中的一个方法,用于注册简单的视图控制器,从而无需编写控制器方法即可实现 URL 到视图的映射。

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;

@Configuration
@EnableWebMvc
public class MyWebMvcConfigurer implements WebMvcConfigurer {

    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        // 注册简单的视图控制器
        registry.addViewController("/home").setViewName("home");
        registry.addViewController("/login").setViewName("login");
        registry.addViewController("/dashboard").setViewName("dashboard");
    }
}

上述代码中,通过 addViewControllers 方法注册了三个简单的视图控制器:

  1. /home 映射到名为 "home" 的视图。
  2. /login 映射到名为 "login" 的视图。
  3. /dashboard 映射到名为 "dashboard" 的视图。

六、注册自定义的参数解析器addArgumentResolvers


addArgumentResolvers 是 WebMvcConfigurer 接口中的一个方法,用于注册自定义的参数解析器(Argument Resolvers)。参数解析器在 Spring MVC 中用于将请求中的参数映射到控制器方法的参数上,或者在处理器方法执行前进行一些额外的参数解析逻辑。 

import org.springframework.context.annotation.Configuration;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

import java.util.List;

@Configuration
@EnableWebMvc
public class MyWebMvcConfigurer implements WebMvcConfigurer {

    @Override
    public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
        // 注册自定义的参数解析器
        argumentResolvers.add(new MyCustomArgumentResolver());
    }

    // 示例的自定义参数解析器
    private static class MyCustomArgumentResolver implements HandlerMethodArgumentResolver {
        // 实现参数解析逻辑
    }
}

上述代码中,通过 addArgumentResolvers 方法注册了一个自定义的参数解析器 MyCustomArgumentResolver。这个自定义的解析器需要实现 HandlerMethodArgumentResolver 接口,然后在接口方法中实现参数的解析逻辑。

自定义参数解析器可以用于解析控制器方法的参数,将请求中的数据转换为控制器方法所需的参数类型。这样的定制可以用于处理一些特殊的场景,例如将请求中的 JSON 数据转换为对象等。

七、注册自定义的返回值处理器addReturnValueHandlers  

addReturnValueHandlers 是 WebMvcConfigurer 接口中的一个方法,用于注册自定义的返回值处理器(Return Value Handlers)。返回值处理器在 Spring MVC 中用于将控制器方法的返回值转换为响应体的内容。 

import org.springframework.context.annotation.Configuration;
import org.springframework.web.method.support.HandlerMethodReturnValueHandler;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

import java.util.List;

@Configuration
@EnableWebMvc
public class MyWebMvcConfigurer implements WebMvcConfigurer {

    @Override
    public void addReturnValueHandlers(List<HandlerMethodReturnValueHandler> returnValueHandlers) {
        // 注册自定义的返回值处理器
        returnValueHandlers.add(new MyCustomReturnValueHandler());
    }

    // 示例的自定义返回值处理器
    private static class MyCustomReturnValueHandler implements HandlerMethodReturnValueHandler {
        // 实现返回值处理逻辑
    }
}

上述代码中,通过 addReturnValueHandlers 方法注册了一个自定义的返回值处理器 MyCustomReturnValueHandler。这个自定义的处理器需要实现 HandlerMethodReturnValueHandler 接口,然后在接口方法中实现返回值的处理逻辑。

自定义返回值处理器可以用于处理控制器方法的返回值,将其转换为适当的响应格式。这样的定制可以用于处理一些特殊的场景,例如将对象转换为 JSON 数据等。

八、配置消息转换器configureMessageConverters  

configureMessageConverters 是 WebMvcConfigurer 接口中的一个方法,用于配置消息转换器(Message Converters)。消息转换器在 Spring MVC 中负责将 HTTP 请求的数据转换为 Java 对象,以及将 Java 对象转换为 HTTP 响应的数据。

import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

import java.util.List;

@Configuration
@EnableWebMvc
public class MyWebMvcConfigurer implements WebMvcConfigurer {

    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        // 注册自定义的消息转换器
        converters.add(new MyCustomMessageConverter());

        // 注册Jackson的JSON消息转换器
        converters.add(new MappingJackson2HttpMessageConverter());
    }

    // 示例的自定义消息转换器
    private static class MyCustomMessageConverter extends AbstractHttpMessageConverter<Object> {
        // 实现消息转换逻辑
    }
}

上述代码中,通过 configureMessageConverters 方法注册了两个消息转换器:

  1. MyCustomMessageConverter:自定义的消息转换器,需要继承 AbstractHttpMessageConverter 并实现相应的转换逻辑。

  2. MappingJackson2HttpMessageConverter:Jackson 框架提供的 JSON 消息转换器,用于将 JSON 数据转换为对象,以及将对象转换为 JSON 数据。

自定义消息转换器可以用于处理特殊的数据格式,例如 XML、Protocol Buffers 等。

Springboot2.0--WebMvcConfigurer详解 WebMvcConfigurer是spring内部配置的一种方式,使用JavaBean的方式代替传统的xml配置;也可以自定义扩展配置类,实现方式是继承WebMvcConfigurer接口;WebMvcConfigurer其实就是一个接口,具体的配置是由实现类来决定的,现在会有两个问题,具体的实现类有哪些?这些实现类是如何加载到容器之中并生效的?带着这两个问题开启我们源码的探索之旅。 WebMvcConfigurer具体实现类 1.系统自带实现类 WebMvcAutoConfigurationAda. 阅读详情

相关推荐

WebMvcConfigurer拦截器的使用

WebMvcConfigurer拦截器的使用

Spring--WebMvcConfigurer详解

目录 1. 简介 2. WebMvcConfigurer接口 2.1 addInterceptors:拦截器 2.2addViewControllers:页面跳转 2.3addResourceHandlers:静态资源 2.4configureDefaultServletHandling:默认静态资源处理器 2.5configureViewResolvers:视图解析器 2.6configureContentNegotiation:配置内容裁决的一些参数 2.7addCorsM......

Java后端技术栈 4万+

SpringBoot配置接口:WebMvcConfigurer

SpringBoot配置接口WebMvcConfigurer

骑个小蜗牛的博客 3万+

如何导入su_利用GIS快速生成SU场地模型

01|前言:进入2021年了,希望大家也是一个新的开始。告诫自己多写文章多更新,多读点书多旅行。然而元旦由于出去玩了4天,积累了一些事情要处理,一直没有时间好好写点东西。今天给大家带来的分享主题叫“利用GIS快速生成SU场地模型”。相关的视频方法其实B站上也有,但我相信视频很多人都不会看,我自己也是。直接给大家上操作流程。主要的操作步骤是【获取场地的矢量shp文件】—【导入ArcScen...

weixin_33806859的博客 9813

zynq+LWIP 裸机双网口实现(MIO+EMIO)+程序下载

芯片型号: ZYNQ: XC7Z010clg400开发软件:Vivado2022 + Xilinx Vitis 2022网卡芯片:RTL8211FDI(需要根据网口芯片型号修改对应的硬件配置代码。

thinking in 小宇宙 3407

SpringBoot---WebMvcConfigurer详解

目录 1. 简介 2. WebMvcConfigurer接口 2.1 addInterceptors:拦截器 2.2addViewControllers:页面跳转 2.3addResourceHandlers:静态资源 2.4configureDefaultServletHandling:默认静态资源处理器 2.5configureViewResolvers:视图解析器...

zhangpower1993的博客 20万+

机器学习模型系列:随机森林的原理和示例介绍

让我们总结一下与其他监督式机器学习模型相比,随机森林的优缺点。优点在许多真实数据集上已知能提供高度准确的模型。通过结合多个决策树的预测,可以捕捉数据集中的复杂交互和模式。通过自动选择相关特征,可以有效处理高维数据集。与单个决策树相比,不容易过拟合。自助采样和每个节点的随机特征选择有助于减少过拟合并改善泛化能力。可以处理包括数值和分类特征在内的异构数据类型。可以处理缺失值而不需要填充。提供特征重要性的度量。集成中的树可以并行训练,因为每个决策树可以独立构建。模型的泛化误差具有理论上的界限。

数智笔记 1万+

SpringBoot中WebMvcConfigurer接口详解

JDK8的一些新特性——在接口中新增了default方法和static方法,这两种方法可以有方法体。 一、概述 java8之前,WebMvcConfigurerAdapter还是WebMvcConfigurer得空实现抽象类,WebMvcConfigurerAdapter没有被标注为@Deprecated被遗弃的类。 java8新特性 运用之后: 所以今天要说的是 WebMvcConfig...

我弟是个程序员 2万+

用GraphPad Prism直出单细胞亚群堆叠柱状图

用GraphPad Prism直出单细胞亚群堆叠柱状图

fivehuge的博客 4195

[案例四] 智能填写属性工具(支持装配组件还有建模实体属性的批量创建、编辑)

本次案例主要是对上次导出自动导出BOM的一个前处理,要想导出属性,首先的有属性。于是本着学习的态度进行制作,可能有些功能有点别扭(支持装配环境下组件属性的批量填写,支持建模环境下的实体(不包括装配组件实体)——为了减负我把其过滤掉了,一般没人会往装配体里添加进行建模吧,但是不免有奇葩,哈哈哈)。

weixin_47753171的博客 1980

SpringBoot-WebMvcConfigurer详解

WebMvcConfigurer1. 简介2. WebMvcconfigurer接口3. WebMvcConfigurer接口详解3.1 配置拦截器 addInterceptors(InterceptorRegistry registry)3.2 页面跳转addViewControllers(ViewControllerRegistry registry)3.3 配置自定义静态资源映射目录 add...

雨后是冰雹 4838

YOLOv13添加OREPA模块 准确率提升10.56个点,map提升11.87个点。小目标轻量化

本文提出了一种新的OREPA(Optimal Recursive Edge-Preserving Attention)模块,通过结合递归和边缘保留注意力机制,显著提升了目标检测模型的性能。实验结果表明,添加OREPA模块后,准确率提升了10.56个百分点,mAP提升了11.87个百分点。OREPA模块包含三个核心组件:OREPA1处理特征图并保留边缘信息,Bottleneck_OREPA作为瓶颈模块降低计算量,OREPA类通过堆叠多个Bottleneck_OREPA增强网络表达能力。文章详细介绍了如何将OR

FJN110的博客 2761

SpringBoot之WebMvcConfigurer拦截器的常用使用详解

目录1.引入pom依赖2. 启动类配置3.自定义拦截器配置 1.引入pom依赖 因为用到拦截器的 几乎都是web项目,引入下web包 拦截器对象也在web包里 <!--引入springboot父工程依赖--> <!--引入依赖作用: 可以省去version标签来获得一些合理的默认配置 --> <parent> <groupId>org.springframework.boot</group

weixin 19953181360 1万+

LVGL(lv_table)

LVGL中的lv_table是一个轻量级表格控件,用于显示行列式文本数据。它支持设置单元格内容/样式、行列调整、事件响应等基础功能,适用于参数配置、数据展示等场景。通过API可快速创建表格,设置行列数、填充数据,并自定义对齐方式与样式。但需注意默认无滚动条、行数限制等问题。该控件适合简单表格需求,复杂交互需结合自定义事件处理。

m0_49476241的博客 1262

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

WebMvcConfigurer配置详解

WebMvcConfigurer配置类其实是Spring内部的一种配置方式,采用JavaBean的形式来代替传统的xml配置文件形式进行针对框架个性化定制,可以自定义一些Handler,Interceptor,ViewResolver,MessageConverter。基于java-based方式的spring mvc配置,需要创建一个类并实现接口;在Spring Boot 1.5版本都是靠重写的方法来添加自定义拦截器,消息转换器等。

zzhongcy的专栏 2915

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

SpringBoot之MVC配置(WebMvcConfigurer详解)

Spring MVC是一种常用的Java Web框架,它提供了一种基于MVC模式的开发方式,可以方便地实现Web应用程序。在Spring MVC中,WebMvcConfigurer是一种常用的配置方式,可以允许我们自定义Spring MVC的行为,比如添加拦截器、消息转换器等。在本文中,我们将介绍什么是WebMvcConfigurer,以及如何使用它来自定义Spring MVC的配置。

2301_78287784的博客 9392

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

WebMvcConfigurer配置接口详解

摘要:WebMvcConfigurer是SpringMVC的核心配置接口,用于在不重写完整配置的情况下扩展MVC功能。它提供多种回调方法,支持配置视图解析器、添加拦截器、处理静态资源、自定义参数解析器、消息转换器和跨域设置等常见场景。相比WebMvcConfigurationSupport,它更轻量且能保留SpringBoot的自动配置。开发者只需实现该接口并覆盖所需方法,即可灵活定制MVC行为,适用于前后端分离、权限管理等业务需求。

魏波 1786

WebMvcConfigurer的实现以及内部方法详解

背景:最近有个项目需要发表在websphere应用服务器上,但是was的版本不支持spring5.0。所以在使用springboot搭建项目的时候使用了springboot1.5.13版本,降级spring到4.0。在搭建项目框架过程中遇到了配置springMvc的问题。 **为什么要使用WebMvcConfigurer?** WebMvcConfigurer是一个接口,提供很多自定义的拦截...

w21020的博客 4296

SpringBoot之WebMvcConfigurer详解

WebMvcConfigurer配置类其实是Spring内部的一种配置方式,采用JavaBean的形式来代替传统的xml配置文件形式,针对框架个性化定制,可以自定义一些Handler,Interceptor,ViewResolver,MessageConverter。基于java-based方式的spring mvc配置,需要创建一个配置类并实现WebMvcConfigurer接口。在Spring Boot 1.5版本都是靠重写的方法来添加自定义拦截器,消息转换器等。

路漫漫其修远兮,吾将上下而求索 2453

WebMvcConfigurer详解

WebMvcConfigurer 是 Spring 5 引入的一个接口,它用于定制 Spring MVC 的行为,使得开发者能够更加灵活地修改和扩展 Spring MVC 默认的配置。它提供了多种方法,可以定制拦截器、视图解析器、静态资源处理、消息转换器、CORS 配置等。使用 WebMvcConfigurer 可以让你无需修改 Spring 源代码,就能轻松定制 Spring MVC 的行为。

许苑向上 1125

WebMvcConfigurer 详解

接口在 Spring Framework 中用于定制和配置 Spring MVC 的各种特性。通过实现这个接口,你可以添加自定义配置和功能,而不是完全替换 Spring MVC 的默认配置。

weixin_52438357的博客 1401

WebMvcConfigurer讲解

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

java牛牛的博客 1万+

WebMvcConfigurer和WebMvcConfigurationSupport(MVC配置)

在日常开发中推荐优先使用WebMvcConfigurer的方式(官方推荐),因为简单方便,也没有特别复杂的定制需求;若我们项目中使用的MVC存在着更加复杂的配置需求推荐WebMvcConfigurationSupport,通过继承此类,我们可以说对官方的MVC代码进行重写操作,但是因为其配置量较大,实现比较复杂,因此在日常开发中使用WebMvcConfigurationSupport并不常见。常用自定义配置如下:1.addInterceptors(拦截器配置)

o0way0o的博客 7219

SpringBoot WebMvcConfigurer详解

SpringBoot WebMvcConfigurer详解

Jaemon 845
上一篇: SpringBoot中解决如何跨域方案
下一篇: 详解Spring监听应用程序事件(ApplicationListener)
境里婆娑
境里婆娑 新星创作者: Java技术领域 新星创作者: Java技术领域 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄10年 1万+粉丝 300原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

境里婆娑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值