Ant 风格的路径模式和 MVC 风格的路径模式 是什么

Ant 风格的路径模式和 MVC 风格的路径模式是 Spring 框架中用于匹配 URL 路径的两种模式。它们各有不同的语法和用途,主要用于配置 Spring Security 和 Spring MVC 中的请求映射。

Ant 风格的路径模式

Ant 风格的路径模式使用 Ant 文件路径匹配语法来匹配 URL。常见的模式符号包括:

  • *:匹配任意数量的字符(不包括路径分隔符 /)。
    • 例如:/user/* 可以匹配 /user/1/user/abc,但不匹配 /user/profile/1
  • **:匹配任意数量的字符(包括路径分隔符 /)。
    • 例如:/user/** 可以匹配 /user/1/user/profile/1/user/profile/settings
  • ?:匹配一个字符。
    • 例如:/user/?? 可以匹配 /user/ab/user/12,但不匹配 /user/a/user/abc

在 Spring Security 中,antMatchers 方法用于指定使用 Ant 风格的路径模式。例如:

http.authorizeRequests().antMatchers("/public/**").permitAll() // 允许所有对 /public/ 及其子路径的访问.antMatchers("/admin/*").hasRole("ADMIN") // 只允许具有 ADMIN 角色的用户访问 /admin/ 下的一层路径.anyRequest().authenticated(); // 其他所有请求都需要进行身份验证

MVC 风格的路径模式

MVC 风格的路径模式使用 Spring MVC 的路径匹配语法来匹配 URL。它通常用于 Spring MVC 控制器的请求映射。常见的模式符号包括:

  • {}:用于路径变量,占位符可以匹配任意路径段。
    • 例如:/user/{id} 可以匹配 /user/1/user/abc,路径变量 id 的值分别为 1abc
  • *:匹配任意数量的字符(不包括路径分隔符 /)。
    • 例如:/user/* 可以匹配 /user/1/user/abc,但不匹配 /user/profile/1
  • **:匹配任意数量的字符(包括路径分隔符 /)。
    • 例如:/user/** 可以匹配 /user/1/user/profile/1/user/profile/settings

在 Spring Security 中,mvcMatchers 方法用于指定使用 MVC 风格的路径模式。例如:

http.authorizeRequests().mvcMatchers("/user/{id}").hasRole("USER") // 只允许具有 USER 角色的用户访问 /user/ 下的路径,并匹配路径变量 {id}.mvcMatchers("/public/**").permitAll() // 允许所有对 /public/ 及其子路径的访问.anyRequest().authenticated(); // 其他所有请求都需要进行身份验证

总结

  • Ant 风格的路径模式:使用 ***? 等符号来匹配 URL 路径,主要用于文件路径匹配。
  • MVC 风格的路径模式:使用 {} 占位符来匹配路径变量,适用于 Spring MVC 控制器的请求映射。

选择使用哪种模式取决于具体的应用场景和需求。对于需要匹配复杂 URL 模式的场景,MVC 风格的路径模式更为灵活和强大。

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

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

相关文章

部署运维之一:发展历史

在当今数字化转型加速的时代,部署运维作为技术栈中至关重要的一环,不仅承载着确保应用平稳运行的重任,还深刻影响着企业的业务连续性、用户体验以及市场竞争力。随着云计算、大数据、人工智能等技术的飞速发展,应用系统的复杂性日…

深度学习-5-如何选择损失函数和激活函数以及层数

参考神经网络结构选择的智慧:层数、连接与神经元数量的奥秘 参考终于知道如何选择深度学习的损失函数和激活函数了! 参考神经网络动画讲解 - 权重W、偏置b和激活函数 1 神经网络结构的选择 不同的神经网络结构,如层数、连接方式以及神经元数量等,都会对模型的学习能力、泛…

ReentrantLock的源码实现和原理介绍

目录 一、概述 二、ReentrantLock的整体结构 三、ReentrantLock 和Synchronized相比 四、ReentrantLock 公平锁和非公平锁实现 4.1 ReentrantLock 源码解读 4.1.1 ReentrantLock 类源码解读 4.1.1.1 Lock接口 4.1.1.2 Sync抽象类 4.1.1.3 NonfairSync()和FairSync() 4…

React 18 + Babel 7 + Webpack 5 开发环境搭建

文章目录 一、基础开发环境搭建1. 新建项目目录2. 项目目录结构及内容3. 安装 React 18 Babel 7 Webpack 54. 配置 Babel 和 Webpack5. 调试/构建项目 二、扩展项目支持的能力(待补充)1. JS 扩展(待补充)2. CSS 扩展&#xff08…

EasyCVR视频技术:城市电力抢险的“千里眼”,助力抢险可视化

随着城市化进程的加速和电力需求的不断增长,电力系统的稳定运行对于城市的正常运转至关重要。然而,自然灾害、设备故障等因素常常导致电力中断,给城市居民的生活和企业的生产带来严重影响。在这种情况下,快速、高效的电力抢险工作…

产品介绍|九芯语音芯片的特点与应用市场

随着物联网与智能家居的普及,越来越多的电子产品有了语音播报的需求。九芯语音芯片集成了语音识别和语音合成技术,能够准确地捕捉并解析人类的语言,同时以清晰、自然的语调进行回应,为各类智能设备注入了强大的语言交互能力。 特点…

Knife4j的原理及应用详解(四)

本系列文章简介: 在当今快速发展的软件开发领域,API(Application Programming Interface,应用程序编程接口)作为不同软件应用之间通信的桥梁,其重要性日益凸显。随着微服务架构的兴起,API的数量…

2024智慧竞技游戏俱乐部线下面临倒闭?

在2024年的中国,智慧竞技游戏俱乐部如雨后春笋般在二三线城市中兴起,它们不仅是年轻人娱乐的场所,更是智慧与技巧的较量场。然而,随着疫情的冲击,这些俱乐部面临着前所未有的挑战。本文将通过一个小镇上的故事&#xf…

OSI 七层模型与五层模型

OSI(开放系统互连)七层模型和五层模型是描述计算机网络协议的两种不同层次划分方法。两者用于帮助理解和设计网络协议,但它们在层次划分上有所不同。

使用Elasticsearch Python SDK 查询Easysearch

随着数据分析需求的不断增长,能够高效地查询和分析大数据集变得越来越重要。Elasticsearch作为一种强大的分布式搜索和分析引擎,被广泛应用于各种场景。Easyearch 支持原生 Elasticsearch 的 DSL 查询语法,确保原业务代码无需调整即可无缝迁移…

优化校园设施维护,故障类型功能全解析

在智慧校园的日常运作中,报修管理系统的故障类型功能扮演着至关重要的角色。它不仅简化了设备维修的流程,还极大地提升了校园设施的维护效率。该功能的核心在于,它允许系统管理员创建、编辑和删除一系列故障类型,涵盖从网络连接问…

vue实现动态图片(gif)

目录 1. 背景 2. 分析 3. 代码实现 1. 背景 最近在项目中发现一个有意思的小需求,鼠标移入一个盒子里,然后盒子里的图就开始动起来,就像一个gif一样,然后鼠标移出,再按照原来的变化变回去,就像变形金刚…

QT--控件篇二

一、文本框 1. QLineEdit 文本框通常使用QLineEdit和QTextEdit这两个类来实现。 QLineEdit:用于单行文本输入。QTextEdit:用于多行文本输入,可以包含丰富的文本格式。 用setText(QString txt);设置默认的显示内容,用QString tex…

【NOI】C++数据结构入门之一维数组(一)数组基础

文章目录 前言一、概念1.导入2.数组2.1 数组的创建2.2 数组的使用 二、例题讲解问题:1423 - 考试成绩的简单统计问题:1153 - 查找“支撑数”问题:1156 - 排除异形基因问题:1155 - 找找谁的身高超过全家的平均身高问题:…

计算机网络生成树协议介绍与实践

生成树协议 1.环路 二层环路:数据链路层,交换机(二层设备)通过线路连接环状。即物理成环并且没有开启防环协议。 危害:广播风暴:交换机将未知帧广播,收到后的交换机继续广播,不断…

JAVA-----BIO、NIO、AIO

一、基础知识 1、同步与异步 同步: 同步就是发起一个调用后,被调用者未处理完请求之前,调用不返回。 异步: 异步就是发起一个调用后,立刻得到被调用者的回应表示已接收到请求,但是被调用者并没有返回结果…

全国地级市-产业升级、高级化、合理化数据集(1999-2022年)

数据年份:1999-2022年 数据范围:地级市以上城市 数据来源:中国城市统计NJ 数据整理:内含原始版本、线性插值版本、ARIMA填补版本 数据说明:参考干春晖(2011)《经济研究》的文章 &#xff0c…

数据结构(单链表(1))

前言 线性表中有着许多的结构,如顺序表和链表。而单链表则是链表的最基础的一种形式,下面就让我们对其做一个了解。 概念 概念:链表是⼀种物理存储结构上⾮连续、⾮顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次…

如何评价一个AI系统

构建输入的prompt和golden answer相对比较耗时(可以利用LLM完成设计),往往在完成Golden Answer的设计后很少需要再次设计,因此这个成本的投入是固定的。但是评估方法是每次评估都需要执行的事情,因此建立快速、边界、ROI高的评估方法是相对比较重要的部分。那么评估方法有…

ENSP中VLAN的设置

VLAN的详细介绍 VLAN(Virtual Local Area Network)即虚拟局域网,是一种将一个物理的局域网在逻辑上划分成多个广播域的技术。 以下是关于 VLAN 的一些详细介绍: 一、基本概念 1. 作用: - 隔离广播域&#xff1a…