常见的做法有 1.使用if或case语句判断参数值; 优点:简单、易理解 缺点:接口多时,if或case分支太多,代码丑陋 2.动态代理 这点怎么解析参数,调用函数我也不是很清楚。 3.spring是否有实现此类功能?
为什么不看文档呢?Spring MVC文档里归类说明的很清楚了。只需要看Request Mapping这一节:https://docs.spring.io/spring/docs/5.2.5.RELEASE/spring-framework-reference/web.html#mvc-ann-requestmapping
要求API共用一个URL,参数不同调用不同的方法,对吧?
都可以认为是参数。只有Path Variable可能会改变URL路径,所以下面介绍其他5种形式。
都是/persons这个URL,分别调用了getPerson和add方法。
都是/pets这个URL,/pets?type=cat和/pets?type=dog分别调用不同的方法。
都是/pets这个URL,/pets?type=cat和/pets?type=dog分别调用不同的方法。
都是/pets这个URL,请求的数据格式不同,分别调用不同的方法。
都是/persons这个URL,Admin和User分别调用不同的方法。Admin可以获取所有数据,User只能获取自己有权限的数据。 上面的这些Annotation可以自由组合。有些也是Class级别的,就是可以放在Controller类上做注解。