zoukankan      html  css  js  c++  java
  • 二十一、springboot之定制URL匹配规则(项目中遇到的问题:get方式传参,带有小数点,被忽略)

    一、问题描述:

      get方式传参,在传送价格,积分时(带有小数点),debug后台微服务接受到的参数,却不带小数点,如:price是0.55,后台接受后却是0

    二、解决

      在WebConfiguration类中添加对应的配置

    @Configuration
    public class WebMvcConfig extends WebMvcConfigurerAdapter {
    
        private static Logger log = LoggerFactory.getLogger(WebMvcConfig.class);
    
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            log.debug("加载静态资源处理路径");
            super.addResourceHandlers(registry);
        }
    
        @Override
        public void configurePathMatch(PathMatchConfigurer configurer) {
            configurer.setUseSuffixPatternMatch(false);
            super.configurePathMatch(configurer);
        }
    
    }

    三、Spring Boot:定制URL匹配规则

    构建web应用程序时,并不是所有的URL请求都遵循默认的规则。有时,我们希望RESTful URL匹配的时候包含定界符“.”,这种情况在Spring中可以称之为“定界符定义的格式”;有时,我们希望识别斜杠的存在。Spring提供了接口供开发人员按照需求定制。

    在之前的几篇文章中,可以通过WebConfiguration类来定制程序中的过滤器、格式化工具等等,同样得,也可以在这个类中用类似的办法配置“路径匹配规则”。

    分析

    configurePathMatch(PathMatchConfigurer configurer)函数让开发人员可以根据需求定制URL路径的匹配规则。

    • configurer.setUseSuffixPatternMatch(true)表示设计人员希望系统对外暴露的URL不会识别和匹配.*后缀。在这个例子中,就意味着Spring会将9781-1234-1111.1当做一个{isbn}参数传给BookController。
    • configurer.setUseTrailingSlashMatch(true)表示系统不区分URL的最后一个字符是否是斜杠/。在这个例子中,就意味着http://localhost:8080/books/9781-1234-1111http://localhost:8080/books/9781-1234-1111/含义相同。

    如果需要定制path匹配发生的过程,可以提供自己定制的PathMatcherUrlPathHelper,但是这种需求并不常见。


    参考:https://www.jianshu.com/p/02bff08fcced
  • 相关阅读:
    FTPClient FTPFile 找不到符号
    1.4 Spring 依赖注入(DI)和控制反转(IOC)详解
    1.3使用marven Spring项目快速搭建
    1.1Spring历史发展和模块定义
    @Component、@Service、@Controller、@Rrepository说明
    打板炒股方法
    性能测试Jmeter扩展学习-添加自定义函数
    性能测试day07_性能瓶颈和分析
    性能测试day06_需求设计的学习(性能重中之重,思维方向永远重于工具)
    性能监控扩展篇(grafana + influxdb + telegraf)
  • 原文地址:https://www.cnblogs.com/soul-wonder/p/9204339.html
Copyright © 2011-2022 走看看