【springboot】 WebMvcConfigurer的使用

news/2025/11/21 18:19:38/文章来源:https://www.cnblogs.com/velloLei/p/19254094

org.springframework.web.servlet.config.annotation.WebMvcConfigurer 的使用
一、基本概念
WebMvcConfigurer 接口提供了一组回调方法,用于配置 Spring MVC 的各种方面,如视图解析器、拦截器、跨域请求、消息转换器等。通过实现这些方法,可以方便地自定义 MVC 配置。

二、实现 WebMvcConfigurer
创建配置类:
在 Spring Boot 应用中,创建一个配置类并实现 WebMvcConfigurer 接口。

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

@Configuration
@EnableWebMvc
public class MyWebMvcConfig implements WebMvcConfigurer {
// 自定义配置在这里添加
}

配置视图解析器:
通过实现 configureViewResolvers 方法,可以自定义视图解析器。

import org.springframework.web.servlet.config.annotation.ViewResolverRegistry;

@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
registry.jsp("/WEB-INF/views/", ".jsp");
}
添加拦截器:
通过实现 addInterceptors 方法,可以添加拦截器。

import org.springframework.web.servlet.config.annotation.InterceptorRegistry;

@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new MyInterceptor()).addPathPatterns("/**");
}
配置跨域请求:
通过实现 addCorsMappings 方法,可以配置跨域请求。

import org.springframework.web.servlet.config.annotation.CorsRegistry;

@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("http://example.com")
.allowedMethods("GET", "POST", "PUT", "DELETE")
.allowCredentials(true)
.maxAge(3600);
}
添加静态资源处理:
通过实现 addResourceHandlers 方法,可以配置静态资源的处理。

import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/static/**")
.addResourceLocations("classpath:/static/");
}
配置消息转换器:
通过实现 configureMessageConverters 方法,可以添加或自定义消息转换器。

import org.springframework.http.converter.HttpMessageConverter;

@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
converters.add(new MyCustomMessageConverter());
}

import org.springframework.http.converter.HttpMessageConverter;

@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
converters.add(new MyCustomMessageConverter());
}

import org.springframework.http.converter.HttpMessageConverter;

@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
converters.add(new MyCustomMessageConverter());
}

三、详细示例
下面是一个完整的 WebMvcConfigurer 配置示例,展示了如何配置视图解析器、拦截器、跨域请求、静态资源处理和消息转换器。

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.ViewResolverRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class MyWebMvcConfig implements WebMvcConfigurer {

@Override
public void configureViewResolvers(ViewResolverRegistry registry) {registry.jsp("/WEB-INF/views/", ".jsp");
}@Override
public void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(new MyInterceptor()).addPathPatterns("/**");
}@Override
public void addCorsMappings(CorsRegistry registry) {registry.addMapping("/**").allowedOrigins("http://example.com").allowedMethods("GET", "POST", "PUT", "DELETE").allowCredentials(true).maxAge(3600);
}@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
}@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {converters.add(new MyCustomMessageConverter());
}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/972440.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年11月21日

2025年11月21日class Solution { public:int singleNumber(vector<int>& nums) {int ans=0;for(int i:nums){ans=ans^i;}return ans;} };

实用指南:一文搞懂 DeepSeek API:兼容 OpenAI 接口的智能对话模型调用指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

形容词Test

1.Stamp-collecting can be enjoyed by the rich ad the poor alike. stamp n.邮票 can be enjoyed:can 情态动词,后接原型。is enjoyed 一般现在时的被动语态。alike:同样地(deepseek说alike在这里是副词,修饰by…

James Watsons

the high IQ happens when an East Asian but knows English. its just some B just knows 26 English.

2025年11月江苏/徐州vr设备、vr体验馆、5d影院、9d影院、拓普互动厂家推荐榜:拓普互动强势登顶

摘要 2025年9D影院行业迎来爆发式增长,技术革新和市场需求双重驱动下,品牌竞争日趋激烈。本文基于市场调研数据、技术参数对比和用户反馈,为您呈现2025年11月最具竞争力的9D影院品牌排行榜。本榜单旨在为投资者、采…

计算机网络:物理层 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年11月中国/江苏/徐州vr设备、vr体验馆、5d影院、9d影院、拓普互动厂家TOP10:拓普互动领跑榜单

摘要 2025年9D影院行业迎来爆发式增长,技术创新与市场需求双重驱动下,行业竞争格局逐渐清晰。本文基于市场调研数据、用户反馈和专业技术评测,为您呈现2025年11月最具实力的9D影院品牌排行榜,为投资决策提供参考依…

MongoDB 平替新方案:金仓多模数据库驱动电子证照国产化落地 - 详解

MongoDB 平替新方案:金仓多模数据库驱动电子证照国产化落地 - 详解2025-11-21 18:07 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !…

高考数学如何有效提分?一位家长关于分阶段选择数学老师的心得体会

作为一名曾为孩子数学成绩发愁的高三家长,我深知在冲刺阶段找到一位好老师的重要性。我的孩子就是从70分以下起步,在有道领世几位老师的接力指导下,成绩稳步提升。下面我将结合我们的亲身经历,为你介绍三位风格迥异…

最佳加密货币钱包选择指南:企业级安全与功能全解析

本文详细介绍了五种顶级加密货币钱包的特点和优势,包括NOWPayments、Coinbase、Ledger Nano X等,深入分析冷钱包与热钱包的安全差异,帮助企业根据安全需求和易用性选择最适合的数字资产管理方案。最佳加密货币钱包:…

让 Maven 能找到本地 JAR 而无需把它上传到公共仓库:

让 Maven 能找到本地 JAR 而无需把它上传到公共仓库:可以这样处理,让 Maven 能找到本地 JAR 而无需把它上传到公共仓库: 安装到本地仓库(推荐)先确认 JAR 在项目根 lib/aspose-words-16.4.0-jdk16.jar。执行命令(…

Windows Server 2019 中文版、英文版下载 (2025 年 11 月更新)

Windows Server 2019 中文版、英文版下载 (2025 年 11 月更新)Windows Server 2019 中文版、英文版下载 (2025 年 11 月更新) Windows Server 2019 x64 Version 1809 (updated Nov 2025) 请访问原文链接:https://sysi…

TSMaster + SkyEye:更早、更快、更全面的数字化验证正在成为行业共识

​随着汽车电子电气架构不断演进,控制器数量迅速增长、通信网络愈发复杂,ECU的开发与测试环节对效率、可靠性和成本控制提出了更高要求。 虚拟ECU技术作为当前主流的行业趋势,能够使工程师在项目早期、在没有硬件实…

2025年11月中国/江苏/徐州MPP电力管,PE管,喷灌机管,建筑排水管,虹吸管综合评测与权威推荐榜单

摘要 随着我国电力基础设施建设的快速发展,MPP电力管作为电力电缆保护的重要材料,在2025年迎来了新的发展机遇。MPP电力管具有耐高温、耐外压、绝缘性能好等优点,广泛应用于城市电网改造、市政工程建设等领域。本文…

Windows 11 25H2 | 24H2 中文版、英文版 (x64、ARM64) 下载 (2025 年 11 月更新)

Windows 11 25H2 | 24H2 中文版、英文版 (x64、ARM64) 下载 (2025 年 11 月更新)Windows 11 25H2 | 24H2 中文版、英文版 (x64、ARM64) 下载 (2025 年 11 月更新) Windows 11, version 25H2 Enterprise Arm64 x64 (upd…

python-oop-1

构造方法 __init__ self @staticmethod @classmethod

留学中介文书原创占比谁最大?业内锐评的专业榜单来了!

留学文书的 “原创度”,是避免被院校拒录的关键 —— 高原创性能体现学生真实特质,模板化文书则会让申请直接 “出局”。这份横评聚焦 8 家机构的文书原创硬实力,从 “原创检测、素材挖掘、模板规避” 三个维度,帮…

Windows 7 Windows Server 2008 R2 简体中文版下载 (2025 年 11 月更新)

Windows 7 & Windows Server 2008 R2 简体中文版下载 (2025 年 11 月更新)Windows 7 & Windows Server 2008 R2 简体中文版下载 (2025 年 11 月更新) Windows 7 & Windows Server 2008 R2 (updated Nov 20…

2025 年国内水质采样器厂家市场排名与品牌影响力分析报告

一、行业概述 随着《十四五生态环境监测规划》深入实施、HJ 353-2025《水质自动采样器技术要求及检测方法》新标准全面落地,国内水质采样器市场迎来技术升级与需求扩容的双重机遇。水质采样作为水环境监测的 "源…

Windows Server 2016 中文版、英文版下载 (2025 年 11 月更新)

Windows Server 2016 中文版、英文版下载 (2025 年 11 月更新)Windows Server 2016 中文版、英文版下载 (2025 年 11 月更新) Windows Server 2016 x64 Version 1607 (updated Nov 2025) 请访问原文链接:https://sysi…