我有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 {
}
这只能在参数级别使用。