在SpringBoot中怎么验证输入请求的自定义注解(springboot,开发技术)

时间:2024-05-02 12:05:28 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

    %E5%9C%A8SpringBoot%E4%B8%AD%E6%80%8E%E4%B9%88%E9%AA%8C%E8%AF%81%E8%BE%93%E5%85%A5%E8%AF%B7%E6%B1%82%E7%9A%84%E8%87%AA%E5%AE%9A%E4%B9%89%E6%B3%A8%E8%A7%A3

在我们的日常编程中,我们会使用许多可用于验证的 Spring Boot 默认注解,如@NotNull、@Size、@NotBlank、@Digits等等,这是验证任何传入的一种很酷的方式要求。

考虑一个场景,默认情况下有一些字段是可选的,如果其他一些字段由特定值填充,则它必须是强制性的。

Spring 没有为这种验证预定义注释。

让我们举一些例子,看看我们如何简化验证过程,使其代码可重用,并在注释级别引入抽象。

在一个典型的销售平台中,会有销售操作和无效销售操作。该金额在销售操作中是强制性的,在销售操作无效的情况下,冲销类型将是强制性的。

我们的 dto 类如下:

IncomingRequestDto 有几个属性,如 transactionType、reversalType 作为 ENUMS。

和 amountDto 为:

场景一:amountDto.value 是有条件的。当我们收到一个具有 transactionType="SALE" 的请求时,amountDto.value 应该是强制性的。

场景 2:reversalType 是有条件的。当我们收到一个具有 transactionType="VOIDSALE" 的请求时,reversalType 应该是强制性的。

让我们首先定义一个带有验证过程所需属性的注释:

fieldName 和 fieldValue 将被定义,我们必须在其上搜索特定值。这里是“销售”。

将定义dependFieldName,我们必须在其上搜索值。

现在让我们实现上面的接口:

在这里,我们需要返回并使用其实现类装饰我们的界面,如下所示:

就是这样!我们已经完成了!让我们用我们的自定义注解装饰我们的 IncomingRequestDto 类:

通过添加上述注释,请求将被拒绝为BAD,HTTP 400不为 Sale 类型请求填充 amountDto.value。我们可以在 List 中添加任意数量的验证,而无需更改任何代码,如下所示:

本文:在SpringBoot中怎么验证输入请求的自定义注解的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:Micronaut中SpringBoot的示例分析下一篇:

4 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18