WebMvcConfigurer接口详解及使用方式(Spring-WebMvc)

news2024/11/29 8:49:10

简介

如下图所示WebMvcConfigurer是spring-webmvc jar包下的一个接口,spring-webmvc jar包又来源于spring-boot-starter-web,所以要使用WebMvcConfigurer要引入spring-boot-starter-web依赖。WebMvcConfigurer接口提供了常用的web应用拦截方法。通过实现该接口可以实现添加自定义拦截器,跨域设置、页面跳转和静态资源访问等功能。

WebMvcConfigurer所在位置

引入项目依赖

<!-- SpringBoot Web容器 -->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-web</artifactId>
	<version>x.x.xx</version>
</dependency>

自定义配置类并实现WebMvcConfigurer接口

@Configuration
public class MvcConfigurer implements WebMvcConfigurer {
    
	/**
     * 此处可添加自定义的拦截器
	 * PS:自定义的拦截器要实现HandlerInterceptor接口
     */
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new AuthenticationInterceptor());
    }

	/**
     * 此处可以进行跨域设置
	 * PS:同源策略是一个重要的安全策略,它用于限制一个源的文档或者它加载的脚本如何能与另一个源的资源进行交互
     */
	@Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOrigins("http://example.com")
                .allowedMethods("GET", "POST", "PUT", "DELETE")
                .allowedHeaders("*");
    }
    
	/**
     * 将控制器映射到特定的视图名称
     */
    @Override
    public void addViewControllers(ViewControllerRegistry registry)
    {
        registry.addViewController("/").setViewName("forward:" + indexUrl);
    }


	/**
     * 此处用于配置静态资源路径,通常用于展示图片、样式表、JavaScript等文件。
     */
	@Override
    public void addResourceHandlers(ResourceHandlerRegistry registry)
    {
        /** 本地文件上传路径 */
        registry.addResourceHandler(Constants.RESOURCE_PREFIX + "/**").addResourceLocations("file:" + FileLocationConfig.getProfile() + "/");
    }
    
    // 还可以实现其他方法...	
}

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

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

相关文章

使用iframe后,鼠标点击位置和实际点击位置不一致

结论&#xff1a; 因为iframe域名和父页面域名不一致导致的 在本地启动项目的时候&#xff0c;鼠标指定的元素在iframe上&#xff0c;发现点击事件不起作用了 点击iframe里面的元素&#xff0c;发现也错位了&#xff0c; 上线之后&#xff0c;父页面部署的域名和iframe中src的…

WebCamTexture报错

使用WebCamTexture把相机的画面显示到 RawImage 上 using UnityEngine; using UnityEngine.UI;public class WebCamTextureTest : MonoBehaviour {public RawImage RawImage;private WebCamTexture _webCamTexture;private Color32[] _colorBuff;private Texture2D _texture2D…

TSINGSEE青犀边缘AI计算基于车辆结构化数据的车辆监控方案

随着人工智能技术的不断发展&#xff0c;边缘AI技术逐渐成为智能交通领域的研究热点。其中&#xff0c;基于边缘AI的车辆结构化数据技术与车辆监控系统是实现智能交通系统的重要手段之一。为了满足市场需求&#xff0c;TSINGSEE青犀边缘AI智能分析网关/视频智能分析平台推出了一…

(四)STM32 操作 GPIO 点亮 LED灯 / GPIO工作模式

目录 1. STM32 工程模板中的工程目录介绍 2. GPIO 简介 3. GPIO 框图剖析 1&#xff09;保护二极管及上、下拉电阻 2&#xff09; P-MOS 管和 N-MOS 管 3&#xff09;输出数据寄存器 3.1&#xff09;ODR 端口输出数据寄存器 3.2&#xff09;BSRR 端口位设置/清除寄存器 4&a…

JavaEE:线程池精讲

目录 一.什么是线程池 二.线程池的实现原理 &#x1f388;为什么要有工厂模式&#xff1f; 三.线程池的构造方法解读 &#x1f388;线程池的拒绝策略 四.自己实现一个线程池 一.什么是线程池 简单来说&#xff0c;线程池就好比一块鱼塘&#xff0c;鱼塘中的每条鱼就是一个线程…

Ansys Lumerical|大尺寸超透镜的光线追迹仿真

附件下载 联系工作人员获取附件 前言 本文介绍了设计和模拟厘米尺度超透镜的工作流程。 我们将一系列不同直径的纳米尺寸等级单元(以下称为纳米单元)在Lumerical中建模&#xff0c;使用RCWA方法对每种直径的纳米单元进行分析&#xff0c;建立纳米元素直径以及其诱发的相位和…

【网络安全】-Linux操作系统基础

文章目录 Linux操作系统目录结构Linux命令格式Linux文件和目录操作命令Linux用户和用户组操作命令Linux查看和操作文件内容命令Linux文件压缩和解压缩命令Linux网络管理命令Linux磁盘管理和系统状态命令Linux安全加固总结 Linux是一个强大的操作系统&#xff0c;广泛用于服务器…

08‐Mysql全局优化与Mysql 8.0新特详解

文章目录 Mysql全局优化总结配置文件my.ini或my.cnf的全局参数最大连接数允许用户连接的最大数量MySQL能够暂存的连接数量JDBC连接空闲等待时长client连接空闲等待时长innodb线程并发数innodb存储引擎buffer pool缓存大小行锁锁定时间redo log写入策略binlog写入磁盘机制排序线…

html之CSS的高级选择器应用

文章目录 一、CSS高级选择器有哪些呢&#xff1f;二、高级选择器的应用1、层次选择器后代选择器子选择器相邻兄弟选择器通用兄弟选择器 2、结构伪类选择器&#xff08;不常用&#xff09;3、属性选择器E[attr]E[attrval]E[attr^val]E[attr$val]E[attr*val] 一、CSS高级选择器有…

大模型上下文扩展之YaRN解析:从直接外推ALiBi、位置插值、NTK-aware插值、YaRN

前言 下半年以来&#xff0c;我全力推动我司大模型项目团队的组建&#xff0c;我虽兼管整个项目团队&#xff0c;但为了并行多个项目&#xff0c;最终分成了三个项目组&#xff0c;每个项目都有一个项目负责人&#xff0c;分别为霍哥、阿荀、朝阳 在今年Q4&#xff0c;我司第…

ChatGPT引领AI时代:程序员、项目经理、产品经理、架构师、Python量化交易师的翅膀

&#x1f482; 个人网站:【 海拥】【神级代码资源网站】【办公神器】&#x1f91f; 基于Web端打造的&#xff1a;&#x1f449;轻量化工具创作平台&#x1f485; 想寻找共同学习交流的小伙伴&#xff0c;请点击【全栈技术交流群】 在当今AI时代&#xff0c;ChatGPT作为一项卓越…

Copilot帮我救回了变砖的甲骨文实例

最近&#xff0c;我的一个美国凤凰城的甲骨文永久免费的amd实例失联了&#xff0c;主要原因东西装多了就反应慢了&#xff0c;还常常断线&#xff0c;寻思干脆 dd个新的系统算了&#xff0c;但dd就后悔了&#xff0c;原来那些开放的端口都关闭了&#xff0c;仅留了一个ssh服务的…

25G/100G校园网解决方案

不断增长的视频流媒体、人工智能&#xff08;AI&#xff09;和云应用的流量需求推动了对更快速、更高容量校园网络解决方案的需求。这就是为什么25G/100G以太网解决方案正在迅速发展的原因。 什么是25G/100G以太网解决方案&#xff1f; 在25G/100G校园网络中&#xff0c;通常…

5路开关量转继电器 Modbus TCP远程I/O模块 YL95 RJ-45网络接口通信

特点&#xff1a; ● 五路开关量输入&#xff0c;五路继电器输出 ● 支持Modbus TCP 通讯协议 ● 内置网页功能&#xff0c;可以通过网页查询电平状态 ● 可以通过网页设定继电器输出状态 ● DI信号输入&#xff0c;DO输出及电源之间互相隔离 ● 宽电源供电范围&#x…

【23真题】成都理工826真题及解析!

哈喽大家好&#xff0c;现在这个时间节点&#xff0c;有很多同学开始刷真题了&#xff01;所以23真题系列正式启动&#xff01;小马哥将全面发布23真题及详细解析&#xff01; 今天分享的是23年成都理工大学826的信号与系统回忆版试题及解析。 小马哥Tips&#xff1a; 本套试…

yolov5单目测距+速度测量+目标跟踪(算法介绍和代码)

要在YOLOv5中添加测距和测速功能&#xff0c;您需要了解以下两个部分的原理&#xff1a; 单目测距算法 单目测距是使用单个摄像头来估计场景中物体的距离。常见的单目测距算法包括基于视差的方法&#xff08;如立体匹配&#xff09;和基于深度学习的方法&#xff08;如神经网…

nodejs 使用 ws/socket.io 模块 websocket 即时通讯

源码 koa-mongodb-template ws 模块 下载 npm install ws简单使用 服务端代码 const WebSocket require("ws"); const WebSocketServer WebSocket.WebSocketServer;const wss new WebSocketServer({ port: 8080 });// 监听客户端连接 wss.on("connectio…

Python Pandas 通过loc/iloc修改局部数据(第9讲)

Python Pandas 通过loc/iloc修改局部数据(第9讲)         🍹博主 侯小啾 感谢您的支持与信赖。☀️ 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ…

一款视频行为分析系统,可轻松开发安全行为检测

系列版本介绍 基于视频行为分析系统v4系列版本可以在不用考虑流媒体音视频开发&#xff0c;编解码开发&#xff0c;界面开发等情况下&#xff0c; 只需要训练自己的模型&#xff0c;开发自己的行为算法插件&#xff0c;就可以轻松开发出任何你想要的安全行为检测&#xff0c;比…

【MYSQL】--MySQL的安装以及基础

&#x1f496;作者&#xff1a;小树苗渴望变成参天大树&#x1f388; &#x1f389;作者宣言&#xff1a;认真写好每一篇博客&#x1f4a4; &#x1f38a;作者gitee:gitee✨ &#x1f49e;作者专栏&#xff1a;C语言,数据结构初阶,Linux,C 动态规划算法&#x1f384; 如 果 你 …