我有restcontroller方法:

@CrossOrigin
@PostMapping("/change_password")
@ApiOperation(value = "Change user password")
public AbstractResponseConfirmationDTO changePassword(@Valid @RequestBody ChangePasswordDTO passwordDTO) {
    return authorizedEmployeeServiceImpl.changePassword(passwordDTO);
}

这里有@valid和@requestbody注释。如何将它们包装成一个注释?我希望是这样:
@CrossOrigin
@PostMapping("/change_password")
@ApiOperation(value = "Change user password")
public AbstractResponseConfirmationDTO changePassword(@AuthorizedRequestBody ChangePasswordDTO passwordDTO) {
    return authorizedEmployeeServiceImpl.changePassword(passwordDTO);
}

@不能将requestbody和@valid应用于类型。

最佳答案

你不能这样做。要使用其他批注创建批注,批注应为elementtypeTYPE
@Valid@RequestBody没有ElementType.TYPE

@Target({ METHOD, FIELD, CONSTRUCTOR, PARAMETER })
@Retention(RUNTIME)
public @interface Valid {
}

这意味着您只能在方法、字段、构造函数和参数上使用此注释。不是在课堂上。

@Target(ElementType.PARAMETER)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RequestBody {
}

这只能在参数级别使用。

10-07 21:20