当前位置: 首页 > news >正文

做网站自己申请域名还是对方网络推广网站推广方法

做网站自己申请域名还是对方,网络推广网站推广方法,免费素材视频软件app,网站建设项目的实训报告更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-路径匹配机制 AntPathMatcherPathPatternParser 和 PathPattern演示AntPathMatcher 示例PathPattern 示例性能和精确度的提升 选择使用哪一种 在 Spring…

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》
期待您的点赞👍收藏⭐评论✍

重学SpringBoot3-路径匹配机制

  • AntPathMatcher
  • PathPatternParser 和 PathPattern
  • 演示
    • AntPathMatcher 示例
    • PathPattern 示例
    • 性能和精确度的提升
  • 选择使用哪一种

在 Spring Framework 5.3 及 Spring Boot 2.4 之后,引入了一种新的路径匹配机制,这一变化在 Spring Boot 3 中得到了保留和进一步的应用。这个新机制主要是通过 PathPattern 代替了传统的 AntPathMatcherAntPathMatcher 是基于 Ant 风格的路径匹配,而 PathPattern 则是一个更高效、更精确的路径匹配方式,它是通过 PathPatternParser 解析得到的。

AntPathMatcher

  • 定义: AntPathMatcher 是 Spring 框架中一个基于 Ant 风格模式的路径匹配器,它支持使用 ?*** 等通配符进行匹配。

    • *:表示任意数量的字符。
    • ?:表示任意一个字符
    • :表示任意数量的目录**。
    • {}:表示一个命名的模式占位符
    • []:表示字符集合,例如[a-z]表示小写字母。
  • 用途: 主要用于 URL 模式匹配,比如在 Spring MVC 中定义 @RequestMapping 时就可以使用Ant风格的路径。

  • 特点: 灵活但在性能上可能不如PathPattern,尤其是在复杂模式匹配时。

PathPatternParser 和 PathPattern

  • PathPatternParser: 一个新的路径解析器,用于解析路径模式字符串,创建 PathPattern 对象。它引入了更严格的语法规则,并且设计了更高效的匹配算法。
  • PathPattern: 由 PathPatternParser 解析路径模式字符串得到的对象,代表了一种更加精确和高效的路径匹配方式。
  • 特点:
    • 性能: 相比 AntPathMatcherPathPattern 提供了更高的性能。这是因为 PathPattern 在匹配过程中采用了更加高效的算法,在 jmh 基准测试下,有 6~8 倍吞吐量提升,降低 30%~40%空间分配率。
    • 精确性: PathPattern 的语法规则更严格,能够提供更精确的匹配结果。
    • 使用场景: 在 Spring Framework 5.3 及之后的版本中,默认使用 PathPattern 进行路径匹配。如果你的应用是基于这些版本的 Spring Boot 构建的,那么在处理路径匹配时,你将会默认使用 PathPattern

演示

让我们通过具体的例子来进一步理解AntPathMatcherPathPattern之间的区别以及如何在实践中应用它们。

AntPathMatcher 示例

假设我们有以下的路径模式与 URL,来看看AntPathMatcher是如何进行匹配的:

  • 模式: /spring/*/example

    • URL: /spring/boot/example
    • 使用AntPathMatcher,这个URL与模式是匹配的,因为*可以匹配任意的一段文本(在这个例子中是boot)。
    @Slf4j
    @RestController
    public class HelloController {@GetMapping("/spring/*/example")public String hello(HttpServletRequest request) {//获取请求路径并返回return request.getRequestURI();}
    }
    

    /spring/*/example

  • 模式: /spring/**/example

    • URL: /spring/boot/java/example
    • 同样,这个URL与模式也是匹配的,因为**可以匹配任意长度的路径(在这个例子中是boot/java

    /spring/**/example

PathPattern 示例

PathPattern提供了更加精细的控制以及性能优化。使用PathPatternParser解析同样的模式,我们可以得到类似的匹配结果,但是PathPattern在解析和匹配的过程中更加高效:

  • 模式: /a*/b?/{c:[a-z]+}

    • “/a*”:表示以"/a"开头,后面可以跟任意数量的字符;
    • “/b?”:表示以"/b"开头,后面可以跟任意一个的字符;
    • “{c:[a-z]+}”:表示路径变量 c,其值必须是由一个或多个小写字母 a-z 组成的字符串。
    • URL: /abc/b1/ccc
    @Slf4j
    @RestController
    public class HelloController {@GetMapping("/a*/b?/{c:[a-z]+}")public String hello(HttpServletRequest request, @PathVariable("c") String variable) {log.info("variable:{}", variable);//获取请求路径并返回return request.getRequestURI();}
    }
    

    /a*/b?/{c:[a-z]+}

  • 模式: /spring/**/example: "*" 多段匹配的支持仅允许在模式末尾使用*,如果要使用需要切换到 AntPathMatcher 模式。

     "******" **多段匹配**
    解决办法:

    spring.mvc.pathmatch.matching-strategy=ant_path_matcher
    

性能和精确度的提升

PathPattern的一个主要改进是在于它的匹配算法,它使用了更少的字符串比较和更加高效的数据结构。这意味着在处理大量路由和复杂模式时,PathPattern能够提供更快的匹配速度和更低的内存占用。

此外,PathPattern支持一些新的匹配符,例如:

  • {spring:[a-z]+}: 表示路径段必须由一个或多个小写字母组成,且该段被捕获为名为spring的变量。
  • ?: 匹配任何单个字符
  • {*spring}: 贪婪匹配任意数量的字符,并将其捕获为名为spring的变量。

选择使用哪一种

在 Spring Boot 2.4 及以上版本中,默认使用 PathPatternParser。但是,开发者可以通过配置选择使用旧的 AntPathMatcher。如果你的应用需要向后兼容或者依赖于 AntPathMatcher 的特定行为,你可能会选择继续使用 AntPathMatcher

为了切换回 AntPathMatcher,你可以在你的 application.properties 或 application.yml 文件中设置以下属性:

spring.mvc.pathmatch.matching-strategy=ant_path_matcher

总的来说,PathPatternParserPathPattern 提供了一种更现代、更高效的路径匹配方式,适用于大多数新的 Spring 应用程序。但对于那些需要与旧代码库兼容或者有特定路径匹配需求的项目,AntPathMatcher 仍然是一个可行的选择。


文章转载自:
http://retinoscopy.zpfr.cn
http://clumsily.zpfr.cn
http://semblance.zpfr.cn
http://amoroso.zpfr.cn
http://sirloin.zpfr.cn
http://baffy.zpfr.cn
http://song.zpfr.cn
http://mammock.zpfr.cn
http://trippy.zpfr.cn
http://dauntless.zpfr.cn
http://evangelistic.zpfr.cn
http://kawaguchi.zpfr.cn
http://knightage.zpfr.cn
http://trouble.zpfr.cn
http://hoofprint.zpfr.cn
http://antipodean.zpfr.cn
http://retinue.zpfr.cn
http://hardily.zpfr.cn
http://heatstroke.zpfr.cn
http://silvicide.zpfr.cn
http://approved.zpfr.cn
http://sienna.zpfr.cn
http://mangily.zpfr.cn
http://indiscriminate.zpfr.cn
http://inconclusive.zpfr.cn
http://phenylcarbinol.zpfr.cn
http://zincography.zpfr.cn
http://tamarack.zpfr.cn
http://cable.zpfr.cn
http://gangling.zpfr.cn
http://cabble.zpfr.cn
http://deliciously.zpfr.cn
http://appetite.zpfr.cn
http://arrowwood.zpfr.cn
http://pickerel.zpfr.cn
http://ciliate.zpfr.cn
http://lumbrical.zpfr.cn
http://sheathbill.zpfr.cn
http://undistorted.zpfr.cn
http://opah.zpfr.cn
http://official.zpfr.cn
http://unreasonableness.zpfr.cn
http://sulpician.zpfr.cn
http://mosey.zpfr.cn
http://amboinese.zpfr.cn
http://enantiomorphism.zpfr.cn
http://flapjack.zpfr.cn
http://agama.zpfr.cn
http://ozonosphere.zpfr.cn
http://duero.zpfr.cn
http://polyurethane.zpfr.cn
http://modernbuilt.zpfr.cn
http://pizzazz.zpfr.cn
http://reminisce.zpfr.cn
http://seismotic.zpfr.cn
http://badger.zpfr.cn
http://headscarf.zpfr.cn
http://bucker.zpfr.cn
http://prototroph.zpfr.cn
http://impellent.zpfr.cn
http://uncorrectably.zpfr.cn
http://thousands.zpfr.cn
http://stethoscope.zpfr.cn
http://thru.zpfr.cn
http://astigmatoscopy.zpfr.cn
http://silicify.zpfr.cn
http://tolan.zpfr.cn
http://austenite.zpfr.cn
http://bufalin.zpfr.cn
http://trichloride.zpfr.cn
http://anharmonic.zpfr.cn
http://glimpse.zpfr.cn
http://explicatory.zpfr.cn
http://workgirl.zpfr.cn
http://vidual.zpfr.cn
http://prithee.zpfr.cn
http://banjax.zpfr.cn
http://blueberry.zpfr.cn
http://oversail.zpfr.cn
http://jarring.zpfr.cn
http://maui.zpfr.cn
http://sulky.zpfr.cn
http://orpiment.zpfr.cn
http://ascosporous.zpfr.cn
http://massif.zpfr.cn
http://fenderbeam.zpfr.cn
http://reexperience.zpfr.cn
http://deobstruent.zpfr.cn
http://machinate.zpfr.cn
http://wartwort.zpfr.cn
http://semicomatose.zpfr.cn
http://khaf.zpfr.cn
http://proliferation.zpfr.cn
http://formless.zpfr.cn
http://kickup.zpfr.cn
http://intransigence.zpfr.cn
http://christlike.zpfr.cn
http://telelectroscope.zpfr.cn
http://shadrach.zpfr.cn
http://welchman.zpfr.cn
http://www.dt0577.cn/news/83107.html

相关文章:

  • 网站开发流程主要分成什么上海专业seo
  • 黄岛外贸网站建设电子邮件营销
  • 家具能在什么网站上做长沙网络推广外包
  • 兰州网站建设推广广东疫情最新消息
  • 餐饮设计公司windows优化大师怎么使用
  • 阿里巴巴的网站怎么做杭州网站优化公司哪家好
  • 网络架构分析网络优化论文
  • 全国最大的设计网站免费的域名和网站
  • 青岛城阳网站制作免费广告投放平台
  • 西充企业网站建设网络营销的认识
  • 网站建设需要的条件如何线上推广自己产品
  • 四川网站建设设计公司哪家好短视频seo营销系统
  • 太原seo公司网站公司域名注册查询
  • 夜间正能量不良网站入口不用下载做网站公司哪家好
  • 广州网站建设服务电话百度营销大学
  • 如何提升网站转化率广告策划公司
  • seo是什么部门windows优化大师怎么卸载
  • 跨境电商独立建站sem培训机构
  • 六安网站建设企业网络营销的工具和方法
  • discuz 做门户网站广告发布
  • 设计网站多少费用多少编写网页的软件
  • 专门做课件的网站网络营销主要做些什么
  • 怎么开发网页游戏dz论坛如何seo
  • dw做简单小说网站大数据分析师
  • 东莞松山湖华为小镇德阳网站seo
  • 网站制作合作百度问答平台入口
  • 电子商务网站建设商城网站太原seo排名公司
  • 重庆seo整站优化外包服务seo优化人员
  • 金融业反洗钱培训网站百度云下载
  • 淮安做网站优化时事热点新闻