@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}")

@GetMapping注解是@RequestMapping(method = RequestMethod.GET) 的缩写,是Spring 4.3引入的组合注解,专门用于处理HTTP GET请求,以下是一些使用该注解的常见场景: ### 获取资源 当需要从服务器获取特定资源时,可使用@GetMapping注解。例如,获取用户信息、商品信息等。 ```java @Controller @RequestMapping("/example") public class MyController { @GetMapping("/user/{id}") public String getUser(@PathVariable Long id) { // 根据用户ID查询用户信息 // ... return "userInfo"; } } ``` ### 分页查询 在进行数据分页查询时,通常会使用GET请求,此时可以使用@GetMapping注解。 ```java @Controller @RequestMapping("/example") public class MyController { @GetMapping("/products") public String getProducts(@RequestParam int page, @RequestParam int size) { // 根据页码和每页数量查询商品信息 // ... return "productList"; } } ``` ### 搜索功能 当用户在前端输入关键词进行搜索时,通常会发送GET请求,后端可以使用@GetMapping注解处理该请求。 ```java @Controller @RequestMapping("/example") public class MyController { @GetMapping("/search") public String search(@RequestParam String keyword) { // 根据关键词进行搜索 // ... return "searchResult"; } } ``` ### 测试接口 在开发过程中,为了方便测试接口功能,也会使用@GetMapping注解。 ```java @Controller @RequestMapping("/example") public class MyController { @GetMapping("/test") public String test() { // 测试接口功能 // ... return "testResult"; } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值