我有带有方法的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不能应用于类型。
答案 0 :(得分:0)
您不能这样做。为了创建带有其他注释的注释,注释应为ElementType TYPE
。
@Valid
和@RequestBody
没有ElementType.TYPE
。
@Target({ METHOD, FIELD, CONSTRUCTOR, PARAMETER })
@Retention(RUNTIME)
public @interface Valid {
}
这意味着您只能在方法,字段,构造函数和参数上使用此注释。不在课堂上。
和
@Target(ElementType.PARAMETER)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RequestBody {
}
这只能在参数级别使用。