【发布时间】:2021-06-11 21:10:08
【问题描述】:
我正在使用 spring boot 创建 REST 服务并定义了一些具有继承性的类,但是我无法接收从邮递员发送到控制器的 JSON 有效负载。
我正在发送的 JSON 有效负载:
{
"dummy" : "okok",
"fullName": "okok",
"mobileNumber": 1234567890
}
我只在控制器中获取虚拟属性,其余属性没有映射到 POJO。 日志记录语句在控制台上打印以下行
ownerAccount OwnerAccount(dummy=okok)
我认为只有 OwnerAccount 构造函数被调用,而 Account 属性没有被初始化。 请帮助我理解我在这里做的缺失部分或错误。 我定义了以下结构:
Account.java
@NoArgsConstructor
@AllArgsConstructor
@Data
public class Account {
@NotBlank(message = "fullName is mandatory")
private String fullName;
@NotNull(message = "mobileNumber is mandatory")
private Long mobileNumber;
@Valid
private AddressRequest addressRequest;
}
OwnerAccount.java
@NoArgsConstructor
@Data
public class OwnerAccount extends Account {
@NotBlank(message = "dummy is mandatory")
private String dummy;
}
OwnerController.java
@RestController
@RequestMapping(path = "/api/v1/account/owner")
public class OwnerAccountResource {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
private OwnerAccountService ownerAccountService;
@Autowired
public OwnerAccountResource(OwnerAccountService ownerAccountService) {
this.ownerAccountService = ownerAccountService;
}
@PostMapping("/signup")
public ResponseEntity createOwnerAccount(@RequestBody @Valid OwnerAccount ownerAccountRequest) {
logger.info("ownerAccountDto {}", ownerAccountRequest);
return ResponseEntity.ok(ownerAccountService.createAccount(ownerAccountRequest));
}
}
【问题讨论】:
标签: java json spring-boot