gpt4 book ai didi

Controller 参数的 Spring 注释包装器

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:23:00 26 4
gpt4 key购买 nike

我有 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 不能应用于类型。

最佳答案

你不能这样做。要创建带有其他注释的注释,注释应为 ElementType TYPE

@Valid@RequestBody 没有 ElementType.TYPE

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

这意味着您只能在方法、字段、构造函数和参数上使用此注释。不在类(class)。

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

这只能在参数级别使用。

关于 Controller 参数的 Spring 注释包装器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50928058/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com