SpringBoot 中如何实现自定义URL规则?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
创新互联为您提适合企业的网站设计 让您的网站在搜索引擎具有高度排名,让您的网站具备超强的网络竞争力!结合企业自身,进行网站设计及把握,最后结合企业文化和具体宗旨等,才能创作出一份性化解决方案。从网站策划到成都网站设计、成都做网站, 我们的网页设计师为您提供的解决方案。
事情的起源:有人问我,说编写了一个/hello访问路径,但是吧,不管是输入/hello还是/hello.html,还是/hello.xxx都能进行访问。当时我还以为他对代码进行处理了,后来发现不是,后来发现这是Spring Boot路由规则。好了,有废话了下,那么看看我们解决上面这个导致的问题。
构建web应用程序时,并不是所有的URL请求都遵循默认的规则。有时,我们希望RESTful URL匹配的时候包含定界符“.”,这种情况在Spring中可以称之为“定界符定义的格式”;有时,我们希望识别斜杠的存在。Spring提供了接口供开发人员按照需求定制。
核心的开发步骤就是两步:
(1)启动类 extends WebMvcConfigurationSupport
(2)重写configurePathMatch方法;
具体实现代码:
package com.kfit; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.web.servlet.config.annotation.PathMatchConfigurer; import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; /** * * @author Angel --守护天使 * @version v.0.1 * @date 2016年7月29日下午7:06:11 */ @SpringBootApplication public class ApiCoreApp extends WebMvcConfigurationSupport{ /** * 1、 extends WebMvcConfigurationSupport * 2、重写下面方法; * setUseSuffixPatternMatch : 设置是否是后缀模式匹配,如“/user”是否匹配/user.*,默认真即匹配; * setUseTrailingSlashMatch : 设置是否自动后缀路径模式匹配,如“/user”是否匹配“/user/”,默认真即匹配; */ @Override publicvoid configurePathMatch(PathMatchConfigurer configurer) { configurer.setUseSuffixPatternMatch(false) .setUseTrailingSlashMatch(true); } publicstaticvoid main(String[] args) { SpringApplication.run(ApiCoreApp.class, args); } }
其中访问代码:
@RequestMapping("/user") public String hello(){ return"/user"; }
以上代码有两句核心的代码:
setUseSuffixPatternMatch(boolean useSuffixPatternMatch):
设置是否是后缀模式匹配,如“/user”是否匹配/user.*,默认真即匹配;
当此参数设置为true的时候,那么/user.html,/user.aa,/user.*都能是正常访问的。
当此参数设置为false的时候,那么只能访问/user或者/user/( 这个前提是setUseTrailingSlashMatch 设置为true了)。
setUseTrailingSlashMatch (boolean useSuffixPatternMatch):
设置是否自动后缀路径模式匹配,如“/user”是否匹配“/user/”,默认真即匹配;
当此参数设置为true的会后,那么地址/user,/user/都能正常访问。
当此参数设置为false的时候,那么就只能访问/user了。
当以上两个参数都设置为true的时候,那么路径/user或者/user.aa,/user.*,/user/都是能正常访问的,但是类似/user.html/ 是无法访问的。
当都设置为false的时候,那么就只能访问/user路径了。
关于SpringBoot 中如何实现自定义URL规则问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。