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