Spring Boot中的路径变量示例详解

2025-07-14 18:50

本文主要是介绍Spring Boot中的路径变量示例详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《SpringBoot中的路径变量示例详解》SpringBoot中PathVariable通过@PathVariable注解实现URL参数与方法参数绑定,支持多参数接收、类型转换、可选参数、默认值及...

在Spring Boot中,路径变量(Path Variable)通过 @PathVariable 注解实现URLphp参数与方法参数的绑定,是构建RESTful API的核心工具。

一. 基本用法与参数映射

1.路径定义

在URL路径中用 {} 包裹变量名,例如:

@GetMapping("/users/{userId}")

2.参数绑定

  • - 默认映射:当参数名与路径变量名一致时,可以省略路径变量名 ,例如:
@GetMapping("/users/{userId}")
public User getUser(@PathVariable Long userId) {
    // 业务逻辑
}
  • - 显式指定:若参数名与变量名不同,通过 @PathVariable("变量名") 指定,例如:
@GetMapping("/users/{userId}")
public User getUserById(@PathVariable("userId") Long id) {
    // 业务逻辑
}

 二.多参数接收

在方法中多次使用 @PathVariable 接收多个参数,例如:

@GetMapping("/users/{userId}/orders/{orderId}")
public Order getOrder(
    @PathVariable Long userId,
    @PathVariable Long orderId) {
    // 业务逻辑
}

三、类型转换

  • - 自动转换:Spring Boot会自动将路径变量的字符串值转换为方法参数的类型,支持基本数据类型(如 int 、 long )、包装类(如 Integer&nbTARhgJjKAMsp;、 Long )、 String 等。
  • - 异常处理:若类型转换失败,Spring Boot会抛出 TypeMismatchException 异常,可通过自定义异常处理器进行处理。

四. 可选参数与默认值

 1.非必填参数

通过 @PathVariable(required = false) 设置参数为可选,未传值时参数值为 null ,例如:

@GetMapping("/users/{id}/info")
public UserInfo getUserInfo(
    @PathVariable("id") Long id,
    @PatandroidhVariable(required = false) String type) {
    // 业务逻辑
}

 2.默认值设置

使用 @PathVariable(defaultValue = "默认值") 指定默认值,当未传值时使用该默认值,例如:

@GetMapping("/page/{pageNum}")
public List<User> getUsers(
    @PathVariable(defaultValue = "1") int pageNum) {
    // 业务逻辑
}

五. 正则表达式约束

通过 {变量名:正则表达式} 限制参数格式,例如:

@GetMpythonapping("/images/{name:\\d{4}-\\d{2}-\\d{2}\\.jpg}") 
// 匹配YYYY-MM-DD.jpg格式
public Image getImage(@PathVariable String name) {
    // 业务逻辑
}

 六、总结

路径变量是 Spring Boot 中构建 RESTful API 的重要工具,通过 @PathVariable 注解实现 URL 参数与方法参数的绑定。它支持多种功能,包括:​单个和多个路径变量的接收。​自动类型转换和异常处理。​可选参数和默认值的设置。​正则表达式约束,用于限制参数格式

到此这篇关于Spring Boot中的路径变量的文章就介绍到这了,更多相关Spring Boot路径变量内容请搜索China编程(www.chinasem.cn)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程China编程(www.chinasem.cn)!

这篇关于Spring Boot中的路径变量示例详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1155385

相关文章

SpringBoot 获取请求参数的常用注解及用法

《SpringBoot获取请求参数的常用注解及用法》SpringBoot通过@RequestParam、@PathVariable等注解支持从HTTP请求中获取参数,涵盖查询、路径、请求体、头、C... 目录SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数以下是主要的注解及其用法:1

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty

深度解析Java @Serial 注解及常见错误案例

《深度解析Java@Serial注解及常见错误案例》Java14引入@Serial注解,用于编译时校验序列化成员,替代传统方式解决运行时错误,适用于Serializable类的方法/字段,需注意签... 目录Java @Serial 注解深度解析1. 注解本质2. 核心作用(1) 主要用途(2) 适用位置3

sky-take-out项目中Redis的使用示例详解

《sky-take-out项目中Redis的使用示例详解》SpringCache是Spring的缓存抽象层,通过注解简化缓存管理,支持Redis等提供者,适用于方法结果缓存、更新和删除操作,但无法实现... 目录Spring Cache主要特性核心注解1.@Cacheable2.@CachePut3.@Ca

QT Creator配置Kit的实现示例

《QTCreator配置Kit的实现示例》本文主要介绍了使用Qt5.12.12与VS2022时,因MSVC编译器版本不匹配及WindowsSDK缺失导致配置错误的问题解决,感兴趣的可以了解一下... 目录0、背景:qt5.12.12+vs2022一、症状:二、原因:(可以跳过,直奔后面的解决方法)三、解决方

深入浅出Spring中的@Autowired自动注入的工作原理及实践应用

《深入浅出Spring中的@Autowired自动注入的工作原理及实践应用》在Spring框架的学习旅程中,@Autowired无疑是一个高频出现却又让初学者头疼的注解,它看似简单,却蕴含着Sprin... 目录深入浅出Spring中的@Autowired:自动注入的奥秘什么是依赖注入?@Autowired

Spring 依赖注入与循环依赖总结

《Spring依赖注入与循环依赖总结》这篇文章给大家介绍Spring依赖注入与循环依赖总结篇,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. Spring 三级缓存解决循环依赖1. 创建UserService原始对象2. 将原始对象包装成工

Java中如何正确的停掉线程

《Java中如何正确的停掉线程》Java通过interrupt()通知线程停止而非强制,确保线程自主处理中断,避免数据损坏,线程池的shutdown()等待任务完成,shutdownNow()强制中断... 目录为什么不强制停止为什么 Java 不提供强制停止线程的能力呢?如何用interrupt停止线程s

MySQL中On duplicate key update的实现示例

《MySQL中Onduplicatekeyupdate的实现示例》ONDUPLICATEKEYUPDATE是一种MySQL的语法,它在插入新数据时,如果遇到唯一键冲突,则会执行更新操作,而不是抛... 目录1/ ON DUPLICATE KEY UPDATE的简介2/ ON DUPLICATE KEY UP

Python中Json和其他类型相互转换的实现示例

《Python中Json和其他类型相互转换的实现示例》本文介绍了在Python中使用json模块实现json数据与dict、object之间的高效转换,包括loads(),load(),dumps()... 项目中经常会用到json格式转为object对象、dict字典格式等。在此做个记录,方便后续用到该方