本文源自Recently祝祝,创自Recently祝祝。转载请标示出处。本文参加日新计划【博客搬家】

此解决方式在企业中有所运用,适合Java初级开发学习,参阅。假如你对文章有更好的建议或许定见,欢迎在谈论区指出。

在Java中运用Spring Boot框架时,能够一起运用多个DTO作为办法参数。

DTO(Data Transfer Object)是一个常见的设计形式,用于封装数据传输目标。它一般用于将数据从一个层传递到另一个层,例如将数据从服务层传递到控制器层。

Spring Boot中,运用DTO作为办法参数能够使代码更具可读性和可维护性。例如,假如您需求从前端传递多个参数到控制器层,则能够将这些参数封装到一个DTO中,并在控制器办法中运用该DTO作为参数。

以下是一个示例代码,演示如安在Spring Boot中一起运用两个DTO作为办法参数:

TraumaTaskController

@PostMapping("/createUser")
public ResponseEntity<String> query(@RequestBody @Valid ConnectioonDTO connectioonDTO) {
   //处理用户和地址信息
   return ResponseEntity.ok("User and address created successfully");
}

Springboot接口多个DTO入参的Postman上传方式

一个办法仅仅用一个 @RequestBody

假如一个办法里面运用了两个 @RequestBody或出现过错

I/O error while reading input message; nested exception is java.io.IOException: Stream closed

因为每个办法只允许运用一个 @RequestBody。运用 @RequestBody Spring 将传入的恳求主体转换为指定的目标(最后关闭表明主体的流),因此尝试在同一办法中第二次运用 @RequestBody 是没有意义的,因为流现已关闭。

所以要将多个DTO组合起来。 ConnectioonDTO

@Data
public class ConnectioonDTO implements Serializable {
    @ApiModelProperty(value = "使命ConditionDTO")
    private TraumaTaskConditionDTO traumaTaskConditionDTO;
    @ApiModelProperty(value = "页面分页恳求参数")
    private PageDTO pageDTO;
}

在上面的示例代码中,控制器办法运用@RequestBody注解将两个不同的DTO(TraumaTaskConditionDTO 和PageDTO )合并到一个作为参数传递。运用这种方式,能够方便地传递多个DTO,并且能够确保控制器办法的参数清晰明确。

需求留意的是,当运用多个DTO作为办法参数时,需求确保这些DTO的特点称号与前端恳求的JSON数据特点称号共同。不然,Spring Boot将无法正确地解析恳求并将数据注入到DTO中。

多个DTO的入参怎么运用Postman测验呢?

因为 query办法的参数类型是 TraumaTaskConditionDTO 和PageDTO,因此在 Postman 中测验时,需求将这两个目标的数据都包括在恳求体中。能够依照以下步骤操作:

翻开 Postman 并挑选 POST 恳求方式。 在恳求 URL 处输入 API 的地址,例如:http://localhost:8080/createUser。 在恳求体中挑选 “raw” 并挑选 JSON 格局。 在恳求体中输入 JSON 数据,与 TraumaTaskConditionDTO 和PageDTO目标的特点称号匹配。例如:

{
  "traumaTaskConditionDTO": {
  	"keyword":"",
  	"startTime":null,
  	"endTime":null,
    "status": "1",
    "areaList": null,
    "name":"邱善平",
    "RegisterNo":"457457567567",
    "hospitalNo":"4746756757",
    "dcjg":""
  },
  "pageDTO": {
    "pageNum": 5,
    "pageSize": 10
  }
}

在上面的示例中,我们运用了两个嵌套的 JSON 目标,分别表明TraumaTaskConditionDTO 和PageDTO目标。这样能够将两个目标的数据都传递到一个 API 恳求中。

Springboot接口多个DTO入参的Postman上传方式

发送 API 恳求并等候响应。 查看响应是否成功,并确保 DTO 目标的特点已被正确地填充。 需求留意的是,运用 Postman 测验 API 时,您需求确保恳求体中的 JSON 数据与 DTO 目标的特点称号彻底匹配,以便 Spring Boot 能够正确地解析数据并将其填充到 DTO 目标中。另外,您还需求确保 API 的地址和端口与您的 Spring Boot 运用程序中的地址和端口匹配。