前言
本文主要介绍了关于Spring根据URL参数进行路由的相关内容,分享出来供大家参考学习价值,下面来一起看看详细的介绍吧。
发现问题
最近在写接口的时候发现一个问题,就是两个REST接口的URL的path部分是一样的,根据query传入不同的参数来区分。
比如S3普通上传接口是是:
PUT /{bucketname}/{ objectname}
分块上传的接口是:
PUT /{bucketname}/{objectname}?partNumber={partNumber}&uploadId={uploadId}
传入partNumber和uploadId是一个接口,没有传入这两个参数是另外一个接口,那Spring中要如何进行路由设置呢?
一般我们设置路由都是@RequestMapping(value = "/xx", method = RequestMethod.GET) 。然后在方法签名中可以通过@RequestParam注入参数。
但是直接通过注入不同的参数来实现区分是不行的,比如:
@ResponseBody
@RequestMapping(value = "/xx", method = RequestMethod.GET)
public String get1(){
return "get1";
}
@ResponseBody
@RequestMapping(value = "/xx", method = RequestMethod.GE