我们在开发Web应用程序时,并不总是使用一些默认的配置。 有时,我们要创建包含字符“.”的RESTful风格的URL。“.”字符在Spring作为分隔符定义格式,例如/projects/spring-boot.json中的“点”或者我们可能想识别路径尾部的斜杠,如/home/等。
虽然Spring Boot选择默认禁用后缀模式匹配,但是Spring为我们提供了对这些问题提供了一种轻松的实现。
配置
自定义URL匹配规则,有两种常用的方式实现:
1、继承抽象类WebMvcConfigurerAdapter,重写configurePathMatch方法
2、继承WebMvcConfigurationSupport,重写configurePathMatch方法
上述两种方式的核心都是:
configurePathMatch(PathMatchConfigurer configurer)函数,让开发人员可以根据需求定制URL路径的匹配规则。
setUseSuffixPatternMatch(boolean useSuffixPatternMatch)
设置是否是后缀模式匹配,true即匹配,如“/user”是否匹配/user.*。
当此参数设置为true时,那么/user.json,/user.xml,/user.*都能是正常访问的。
当此参数设置为false时,那么只能访问/user或者/user/(这个前提是setUseTrailingSlashMatch设置为true了)。
setUseTrailingSlashMatch(boolean useSuffixPatternMatch)
设置是否是后缀路径模式匹配,true即匹配,如“/user”是否匹配“/user/”。
当此参数设置为true时,那么地址/user,/user/都能正常访问。
当此参数设置为false时,那么就只能访问/user了。
当以上两个参数都设置为true时,那么路径/user或者/user.json,
/user.*,/user/都是能正常访问的,。
当以上两个参数都都设置为false时,那么就只能访问/user路径了。
总结
抽象类WebMvcConfigurerAdapter与WebMvcConfigurationSupport都可以配置MVC, WebMvcConfigurerAdapter有的WebMvcConfigurationSupport都有。即,因此建议使用WebMvcConfigurationSupport。
参考
SpringBoot Reference:
https://docs.spring.io/spring/docs/5.0.4.BUILD-SNAPSHOT/spring-framework-reference/web.html#mvc-config-path-matching
https://docs.spring.io/spring/docs/5.0.4.BUILD-SNAPSHOT/spring-framework-reference/web.html#mvc-ann-requestmapping-suffix-pattern-match
领取专属 10元无门槛券
私享最新 技术干货