Spring Boot:传递参数

原文地址:https://dzone.com/articles/spring-boot-passing-parameters

译者:高行行

Spring Boot 通过 Java 注解使传递参数变得容易。

Person kicking soccer ball

请求 URL 时传递参数是 Spring Boot 的最基本功能之一。本文介绍了在请求中传递参数的方法。有两种方法可以传递参数。传递参数的常用方法是在 URL 调用中显式指定参数。格式如下:

1
https://www.youtube.com/watch?v=tuNhqqxgxXQ&t=153s

在上面的 URL 中,有两个参数 v 和 t。要传递参数,请输入”?”。然后,添加参数名称,后跟”=”和参数值。它看起来像这样”?v=value”。要传递另一个参数,请使用”&”,后跟第二个参数名。

传递参数的第二种方法是 path variable。例如:

1
http://www.twitter.com/hashimati

此 URL 中的单词”hashimati”是一个变量。

Spring Boot 通过 Java 注解使传递参数变得容易。让我们看看它在 Spring Boot 中是如何工作的。

创建一个项目

使用Spring Initializer生成 Gradle 或 Maven 项目。你唯一需要的依赖是 Web。

路径变量

在路径变量中,我们在 Web 服务的路径内传递参数。下面的代码段演示了采用路径变量编写 Web 服务的方法:

1
2
3
4
@GetMapping("/hello0/{name}")
public String hello0(@PathVariable("name") String name){
return "Hello " + name;
}
  • name 变量嵌入在服务路径中的大括号之间。
  • name 参数用@PathVariable注释。我们在 @PathVariable 中传递了name来表明方法签名中的name参数存储了{name}值。

Request Parameter

在 Spring Boot 中,有两种方法可以在 URL 请求中传递参数:

  1. 使用 @RequestParam

@RequestParam 可用于注解方法签名中的参数。如以下代码片段所示:

1
2
3
4
@GetMapping("/hello1")
public String hello1(@RequestParam(name="name", required = false, defaultValue = "Ahmed") String name){
return "Hello " + name;
}

@RequestParam 具有以下参数:

  • name:请求参数的名称
  • defaultValue:如果未在请求中传递参数,则为默认值。
  • required:如果为 true,则该参数为必填。否则,不是。
  1. 将参数封装在对象中

使用对象是一种封装参数的好方法。让我们看一下下面的代码片段。首先,我们将创建一个名称为 Params 的类 :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class Params {
private String a, b;
public void setA(String a) {
this.a = a;
}
public void setB(String b) {
this.b = b;
}
public String getA() {
return a;
}
public String getB() {
return b;
}
}

Params 类中应实现 getter 和 setter 方法 。然后,我们将 Params 在 Web 服务的方法签名中使用

1
2
3
4
5
@GetMapping("/hello2")
public String hello2(Parms parameters){
//implement the setter and getter of the Params class.
return "Hello " + parameters.a + " " + parameters.b;
}

最后,该 Web 服务获取到两个参数,分别是ab

进一步阅读

使用 Spring @RequestMapping 注释

在 Spring 中使用过滤器

打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2015-2023 高行行
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信