比如 url1 需要只支持 POST url2 只支持 GET 两个 url 映射到一个方法上,有什么好的方式,如果使用 RequestMapping 分别写两个 url 和 method,会产生四种组合感觉不是太好
老项目做 restful 改造,兼容老的,照顾新的确实很麻烦
1
chendy 2020-11-13 19:09:40 +08:00
@ GetMapping("url1")
@ PostMapping("url2") public void method(){ } 不知道是不是这个意思 (为了不艾特到人加了个空格) ( /t/724499 可能不是 java 的锅应该是项目的锅) |
2
noble4cc OP 好像不行老哥,你可以试下,最终只能用一个 url
|
3
LGA1150 2020-11-13 20:18:56 +08:00 via Android
写两个 method,method2 直接调用 method1
|
4
tangkaichuan 2020-11-13 20:45:18 +08:00 via Android
把内容用 service 装起来,多个 controller 调同一个 service
|
5
ChanKc 2020-11-13 21:01:56 +08:00
抽象类写方法实现,然后用两个 controller 分别继承,调用 super
|
6
6IbA2bj5ip3tK49j 2020-11-13 21:06:26 +08:00
????上面都是不看文档瞎答的吗
@RequestMapping(value = {"hello","world"},method = {RequestMethod.GET,RequestMethod.POST}) |
7
xuanbg 2020-11-13 21:38:15 +08:00 2
6 楼是对的,但换我做这个事情,才不来写 @RequestMapping(value = {"hello","world"},method = {RequestMethod.GET,RequestMethod.POST})这种奇怪的代码。
写两个 Controller,一个是旧版本兼容的,一个是船新的。不过这两个 Controller 都调用同一个 service 。这个代码结构新旧分明好维护好扩展。 |
8
wangsongyan 2020-11-13 21:44:17 +08:00 via iPhone
@xgfan 代码运行没问题,但没达到楼主想要的效果
|
9
jwenjian 2020-11-13 22:11:36 +08:00 via iPhone
(只)支持
|
11
dengshen 2020-11-13 22:38:59 +08:00 via iPhone
@requestmapping 不写具体的请求方式的话应该是支持所有的 http 请求
|
12
baozijun 2020-11-13 23:07:38 +08:00 via iPhone
一个新 controller 即可,分装不同的 service
|
16
THESDZ 2020-11-16 14:15:03 +08:00
1.新老应该隔离开不同的入口
2.老的应该打上 过时 标记 不要为了兼容而搞奇奇怪怪的代码啊,后面的人怎么接手啊,哦,完成任务就行,那没事了 |