Java Web 一个Controller 拥有多个请求路径写法学习总结

使用场景

当多个请求路径要映射到同一个controller 请求下时,项目架构使用 springframework(spring 框架),可以使用

代码示例

(只需要关注 requestMapping 或者 GetMapping 或 PostMapping 内的写法即可)

加在最顶层 controller 上的写法:
只有一个请求路径时

@RequestMapping("/myApi")
@RestController
public class MyApiController {
   .........
}

多个请求路径都要映射到这个controller 下时 写法:

@RequestMapping({"/myApi", "myApiOpen"})
@RestController
public class MyApiController {
   ..........
}

注意这里的 @RequestMapping 注解,里面当存在多个请求路径时,需要使用 { } 包围里面的内容,{ } 其实就是Java 中String[] 显式赋值的时候的一种写法。

当给controller 下的进一步其他请求做多个映射时,写法一致,具体例子如下:

只有一个时:

@RequestMapping("/myApi")
@RestController
public class MyApiController {

    @GetMapping("/meth")
    public .... myMethod1(......){
    ..........
    }
}

多个时:

@RequestMapping("/myApi")
@RestController
public class MyApiController {

    @GetMapping({"/meth", "/myMe"})
    public .... myMethod1(......){
    ..........
    }
}

这样不论是请求 /myApi/meth 还是 /myApi/myMe 都会进入 myMethod1 方法

原因

进入使用的注解源码可以看到如下定义:
在这里插入图片描述
在这里插入图片描述
可以看到 注解中的 value 一律都是 String[] 字符串数据定义,所以在注解中直接使用 { } 其实也就是在默认的给String [] 赋值,{ }本就是数组显式的赋值符号写法。所以spring 本来就支持请求路径可以有多个不同但映射到同一个类上的写法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值