You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot如何实现clients/1路径按id返回数据并优化现有代码

解决方案

调整为clients/1格式路径访问

只需做2处修改即可实现路径参数取值:

  • 给@GetMapping注解添加路径变量占位符,改为@GetMapping("/{id}")
  • 把参数前的@RequestParam注解替换为@PathVariable

基础调整后的代码示例:

@GetMapping("/{id}")
public Client getClient(@PathVariable int id) {
    Optional<Client> first = clientList.stream().filter(element -> element.getId() == id).findFirst();
    return first.get();
}

代码简化与优化

原有代码直接调用Optional.get()存在风险:如果查询不到对应id的Client,会直接抛出NoSuchElementException,建议补充空值处理,同时省略不必要的中间变量,简化后代码如下:

// 需要提前导入对应依赖:
// import org.springframework.http.HttpStatus;
// import org.springframework.web.server.ResponseStatusException;
@GetMapping("/{id}")
public Client getClient(@PathVariable int id) {
    return clientList.stream()
            .filter(element -> element.getId() == id)
            .findFirst()
            .orElseThrow(() -> new ResponseStatusException(HttpStatus.NOT_FOUND, "对应id的Client不存在"));
}

如果业务允许查询不到时返回null,也可以把orElseThrow替换为orElse(null)。

内容的提问来源于stack exchange,提问作者Dave

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 10:36:01