当前位置: 代码网 > it编程>编程语言>Java > Spring Boot中的路径变量示例详解

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

2025年07月14日 Java 我要评论
在spring boot中,路径变量(path variable)通过@pathvariable注解实现url参数与方法参数的绑定,是构建restful api的核心工具。一. 基本用法与参数映射1.

在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路径变量内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com