@GetMapping(path = “/{shortLinkCode}“)与@GetMapping(“/{shortLinkCode}“)的区别

在 Spring Framework 中,@GetMapping 注解用于将 HTTP GET 请求映射到控制器的处理方法上。在你提供的两个例子中,第一个使用了 path 属性,而第二个使用了路径属性(没有 path 前缀)。实际上,这两种写法是等效的,并且都定义了一个带有变量路径的 GET 映射:

  1. @GetMapping(path = “/{shortLinkCode}”)

    • 这里使用了 path 属性,并在属性值的开头添加了 /,表示这是一个根级别的路径。
  2. @GetMapping(“/{shortLinkCode}”)

    • 这里直接在注解中指定了路径,同样在路径值的开头添加了 /,这也表示这是一个根级别的路径。

在 Spring 5.2 以后的版本中,可以直接在 @GetMapping 的参数中写路径模式,而不需要显式地使用 path 属性。因此,@GetMapping("/{shortLinkCode}") 是更现代和更简洁的写法。

两种写法都会告诉 Spring,当有 GET 请求到达以 / 开头,后跟一个变量 {shortLinkCode} 的路径时,应该调用这个方法。这里的 {shortLinkCode} 是一个路径变量,Spring 会将其绑定到方法的参数上。

例如:

@RestController
public class ShortLinkController {

    @GetMapping("/{shortLinkCode}")
    public ResponseEntity<String> redirectByShortLink(@PathVariable String shortLinkCode) {
        // 处理逻辑
        return ResponseEntity.ok("Redirecting to original URL...");
    }
}

在这个例子中,无论使用哪种写法,只要请求的路径匹配 /任意值redirectByShortLink 方法就会被调用,并且 shortLinkCode 参数会被赋值为 任意值

总结来说,两种写法没有区别,只是风格和习惯的问题。建议使用更简洁的写法 @GetMapping("/{shortLinkCode}")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值