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

 更新时间:2025年07月14日 11:01:47   作者:罗1213  
SpringBoot中PathVariable通过@PathVariable注解实现URL参数与方法参数绑定,支持多参数接收、类型转换、可选参数、默认值及正则约束,是构建RESTful API的核心工具,本文给大家介绍Spring Boot中的路径变量示例,感兴趣的朋友一起看看吧

在Spring Boot中,路径变量(Path Variable)通过 @PathVariable 注解实现URL参数与方法参数的绑定,是构建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 、 Long )、 String 等。
  • - 异常处理:若类型转换失败,Spring Boot会抛出 TypeMismatchException 异常,可通过自定义异常处理器进行处理。

四. 可选参数与默认值

 1.非必填参数

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

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

 2.默认值设置

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

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

五. 正则表达式约束

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

@GetMapping("/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路径变量内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 一篇文章带你从java字节码层理解i++和++i

    一篇文章带你从java字节码层理解i++和++i

    这篇文章带你从java字节码层理解i++和++i,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-09-09
  • Hibernate延迟加载原理与实现方法

    Hibernate延迟加载原理与实现方法

    这篇文章主要介绍了Hibernate延迟加载原理与实现方法,较为详细的分析了Hibernate延迟加载的概念,原理与相关实现技巧,需要的朋友可以参考下
    2016-03-03
  • mybatis plus in使用时传数组、集合的注意点说明

    mybatis plus in使用时传数组、集合的注意点说明

    这篇文章主要介绍了mybatis plus in使用时传数组、集合的注意点说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • 将Springboot项目升级成Springcloud项目的图文教程

    将Springboot项目升级成Springcloud项目的图文教程

    本文主要介绍了将Springboot项目升级成Springcloud项目,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • SpringBoot3整合MyBatis出现异常:Property 'sqlSessionFactory'or 'sqlSessionTemplate' are required

    SpringBoot3整合MyBatis出现异常:Property 'sqlSessionFactory&a

    这篇文章主要介绍了SpringBoot3整合MyBatis报错:Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate‘ are required,其实不是个大问题,只是自己编码时遇到了,然后总结总结分享一下,如果有遇到类似问题的,可以参考一下
    2022-11-11
  • SpringBoot项目如何修改Tomcat版本号

    SpringBoot项目如何修改Tomcat版本号

    本文介绍了Spring Boot项目默认使用内嵌Tomcat Servlet容器打包部署,通过添加指定版本的Tomcat GA依赖,可以修改默认版本号,对于jar包和war包形式的部署,无需排除内置Tomcat,此经验为个人见解,仅供参考
    2026-04-04
  • 类似Object监视器方法的Condition接口(详解)

    类似Object监视器方法的Condition接口(详解)

    下面小编就为大家带来一篇类似Object监视器方法的Condition接口(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • SpringBoot2.x设置Session失效时间及失效跳转方式

    SpringBoot2.x设置Session失效时间及失效跳转方式

    这篇文章主要介绍了SpringBoot2.x设置Session失效时间及失效跳转方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • 基于Java实现XML文件的解析与更新

    基于Java实现XML文件的解析与更新

    配置文件可以有很多种格式,包括 INI、JSON、YAML 和 XML。每一种编程语言解析这些格式的方式都不同。本文将通过Java语言实现XML文件的解析与更新,需要的可以参考一下
    2022-03-03
  • SpringBoot整合EasyExcel实现导入导出功能

    SpringBoot整合EasyExcel实现导入导出功能

    EasyExcel是一个基于Java的、快速、简洁、解决大文件内存溢出的Excel处理工具,他能让你在不用考虑性能、内存的等因素的情况下,快速完成Excel的读、写等功能,本文就给大家介绍一下SpringBoot整合EasyExcel实现导入导出功能的方法,需要的朋友可以参考下
    2023-09-09

最新评论