Spring REST如何以不同的方式验证请求体?

2023-12-13

With @Valid我们可以解析请求正文并使用注释对其进行验证,例如@NotEmpty, @Size(min = 5)。有没有一种方法可以有多种方法来验证身体?例如,在某些端点上,我想忽略一些验证器(@NotNull就我而言)。

我的猜测是创建一个自定义注释,例如@ValidUnlessNull,但是我怎样才能实现它的解析器而不必做以下工作@RequestBody(我试图实现一个Filter and a HandlerMethodArgumentResolver)?


您可以定义自定义验证组并选择任何组@Validated注解。

1) 定义空接口,将用作验证组标识符:

public interface FirstValidateGroup{}

2)给指定接口(组)绑定验证注解:

public class Person{

    @NotBlank(groups = {FirstValidateGroup.class})
    private String firstName;
    @NotBlank
    private String lastName;

    //... getters and setters
}

请注意,您可以为一个属性绑定多个组。

3)选择验证组@Validated注解:

public ResponseEntity<Person> add(@Validated({FirstValidateGroup.class}) 
                                  @RequestBody Person person){
   ...
}

现在只firstName属性将被验证。您可以在中指定多个组@Validated注解。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring REST如何以不同的方式验证请求体? 的相关文章

  • 在画布上绘图

    我正在编写一个 Android 应用程序 它可以在视图的 onDraw 事件上直接绘制到画布上 我正在绘制一些涉及单独绘制每个像素的东西 为此我使用类似的东西 for int x 0 x lt xMax x for int y 0 y lt
  • 在 java 类和 android 活动之间传输时音频不清晰

    我有一个android活动 它连接到一个java类并以套接字的形式向它发送数据包 该类接收声音数据包并将它们扔到 PC 扬声器 该代码运行良好 但在 PC 扬声器中播放声音时会出现持续的抖动 中断 安卓活动 public class Sen
  • Java JDBC:更改表

    我希望对此表进行以下修改 添加 状态列 varchar 20 日期列 时间戳 我不确定该怎么做 String createTable Create table aircraft aircraftNumber int airLineCompa
  • 使用 Android 发送 HTTP Post 请求

    我一直在尝试从 SO 和其他网站上的大量示例中学习 但我无法弄清楚为什么我编写的示例不起作用 我正在构建一个小型概念验证应用程序 它可以识别语音并将其 文本 作为 POST 请求发送到 node js 服务器 我已确认语音识别有效 并且服务
  • Final字段的线程安全

    假设我有一个 JavaBeanUser这是从另一个线程更新的 如下所示 public class A private final User user public A User user this user user public void
  • 加速代码 - 3D 数组

    我正在尝试提高我编写的一些代码的速度 我想知道从 3d 整数数组访问数据的效率如何 我有一个数组 int cube new int 10 10 10 我用价值观填充其中 然后我访问这些值数千次 我想知道 由于理论上所有 3d 数组都存储在内
  • Spark 1.3.1 上的 Apache Phoenix(4.3.1 和 4.4.0-HBase-0.98)ClassNotFoundException

    我正在尝试通过 Spark 连接到 Phoenix 并且在通过 JDBC 驱动程序打开连接时不断收到以下异常 为简洁起见 下面是完整的堆栈跟踪 Caused by java lang ClassNotFoundException org a
  • 反射找不到对象子类型

    我试图通过使用反射来获取包中的所有类 当我使用具体类的代码 本例中为 A 时 它可以工作并打印子类信息 B 扩展 A 因此它打印 B 信息 但是当我将它与对象类一起使用时 它不起作用 我该如何修复它 这段代码的工作原理 Reflection
  • 路径中 File.separator 和斜杠之间的区别

    使用有什么区别File separator和一个正常的 在 Java 路径字符串中 与双反斜杠相反 平台独立性似乎不是原因 因为两个版本都可以在 Windows 和 Unix 下运行 public class SlashTest Test
  • Java TestNG 与跨多个测试的数据驱动测试

    我正在电子商务平台中测试一系列商店 每个商店都有一系列属性 我正在考虑对其进行自动化测试 是否有可能有一个数据提供者在整个测试套件中提供数据 而不仅仅是 TestNG 中的测试 我尝试不使用 testNG xml 文件作为机制 因为这些属性
  • 在两个活动之间传输数据[重复]

    这个问题在这里已经有答案了 我正在尝试在两个不同的活动之间发送和接收数据 我在这个网站上看到了一些其他问题 但没有任何问题涉及保留头等舱的状态 例如 如果我想从 A 类发送一个整数 X 到 B 类 然后对整数 X 进行一些操作 然后将其发送
  • JRE 系统库 [WebSphere v6.1 JRE](未绑定)

    将项目导入 Eclipse 后 我的构建路径中出现以下错误 JRE System Library WebSphere v6 1 JRE unbound 谁知道怎么修它 右键单击项目 特性 gt Java 构建路径 gt 图书馆 gt JRE
  • 加密 JBoss 配置中的敏感信息

    JBoss 中的标准数据源配置要求数据库用户的用户名和密码位于 xxx ds xml 文件中 如果我将数据源定义为 c3p0 mbean 我会遇到同样的问题 是否有标准方法来加密用户和密码 保存密钥的好地方是什么 这当然也与 tomcat
  • AWS 无法从 START_OBJECT 中反序列化 java.lang.String 实例

    我创建了一个 Lambda 函数 我想在 API 网关的帮助下通过 URL 访问它 我已经把一切都设置好了 我还创建了一个application jsonAPI Gateway 中的正文映射模板如下所示 input input params
  • 在 Mac 上正确运行基于 SWT 的跨平台 jar

    我一直致力于一个基于 SWT 的项目 该项目旨在部署为 Java Web Start 从而可以在多个平台上使用 到目前为止 我已经成功解决了由于 SWT 依赖的系统特定库而出现的导出问题 请参阅相关thread https stackove
  • Android 中麦克风的后台访问

    是否可以通过 Android 手机上的后台应用程序 服务 持续监控麦克风 我想做的一些想法 不断聆听背景中的声音信号 收到 有趣的 音频信号后 执行一些网络操作 如果前台应用程序需要的话 后台应用程序必须能够智能地放弃对麦克风的访问 除非可
  • simpleframework,将空元素反序列化为空字符串而不是 null

    我使用简单框架 http simple sourceforge net http simple sourceforge net 在一个项目中满足我的序列化 反序列化需求 但在处理空 空字符串值时它不能按预期工作 好吧 至少不是我所期望的 如
  • 当我从 Netbeans 创建 Derby 数据库时,它存储在哪里?

    当我从 netbeans 创建 Derby 数据库时 它存储在哪里 如何将它与项目的其余部分合并到一个文件夹中 右键单击Databases gt JavaDB in the Service查看并选择Properties This will
  • JGit 检查分支是否已签出

    我正在使用 JGit 开发一个项目 我设法删除了一个分支 但我还想检查该分支是否已签出 我发现了一个变量CheckoutCommand但它是私有的 private boolean isCheckoutIndex return startCo
  • java.lang.IllegalStateException:驱动程序可执行文件的路径必须由 webdriver.chrome.driver 系统属性设置 - Similiar 不回答

    尝试学习 Selenium 我打开了类似的问题 但似乎没有任何帮助 我的代码 package seleniumPractice import org openqa selenium WebDriver import org openqa s

随机推荐

  • 如何使用guard语句来检测赋值后的nil?

    我正在尝试使用 Guard 语句来检查是否为零 我很困惑为什么以下内容让它漏掉并生成 BAD EXEC 错误 guard let event Event eventsImagesLoading removeValueForKey locat
  • PDO_OCI - 进入 clob 字段

    我想在 Oracle DB 中插入一些 base64 编码的数据 每个字段最多 500 000 个字符 因为在我开始使用 PDO 并将字段设置为 CLOB 之前 我没有将 Oracle 与 PHP 一起使用 我的代码的简短版本 Db 类扩展
  • 在 Box2D 中制作漩涡

    我试图通过施加力在 C Objective C 上的 Box2D 中制作螺旋涡流 我想实现的是一个将物体从一个点推开或吸引它们的漩涡 我想我必须施加不止一种力量 我解决这个问题的切入点是 我想我必须施加三种力量 吸引或排斥身体中心的冲动 想
  • 将方法传递给迭代器方法时发生了什么

    众所周知 谁可以通过 a 将方法传递给迭代器方法 prefix 例如 a b map upcase gt A B def rettwo 2 end a b map rettwo gt 2 2 问题是 当我编写一个方法时 传递一个方法 前缀
  • 取出字符串中所有其他单词的算法?

    在 Javascript 中 如果我有一个像这样的字符串 你好 很高兴见到你 我希望返回的是奇怪地方的单词 这样我就会得到 你好 我怎样才能为此编写代码 您可以使用filter创建一个包含偶数索引元素的新数组 请记住 奇数 位置中的单词实际
  • 在完整节点中使用缩略图进行上一个/下一个节点导航

    我一直在试图解决这个问题并使其发挥作用 但由于我不是程序员 只是一名编码知识有限的设计师 所以我在这方面一直碰壁 我正在制作自己的照片库 我想将前两张或下一张图像显示为链接的缩略图 我发现这个脚本可以工作并显示文本链接 但不知道如何使其适应
  • 格式化日期的简单方法

    我写了一个 perl 脚本来获取日期时间 它确实有效 但我确实想知道是否有更简单的方法将日期格式设置为输出 usr bin perl use DateTime my dt DateTime gt now time zone gt local
  • Webapi 在本地工作,但在使用子域托管时无法工作

    我正在构建一个简单的 Web api 它从数据库检索客户余额 在 IIS 本地托管的一切都运行良好 该 api 从正文中获取一个参数 public static void Register HttpConfiguration config
  • fragment.onCreateView 导致空指针异常

    所以我正在使用片段并尝试在它们上连接点击侦听器 public View onCreateView LayoutInflater inflater ViewGroup container Bundle savedInstanceState V
  • Django:存储图像数据库

    早些时候我使用默认数据库 sqlite3 但今天我将其更改为 postgresql 我想将图像文件保存在数据库中而不是项目目录本身中 我怎样才能做到这一点 将图像存储在数据库中并不是一个好主意media文件夹 但你可以使用二进制字段为了这
  • Unicode 中可能的组合字符序列

    有些字符未包含在 Unicode 中 即带重音的西里尔字母 但可以使用组合序列创建 据我了解 可能的组合字符序列是在布局引擎和 或使用的字体中定义的 我对吗 那么 如何得到所有可能的组合序列呢 您是正确的 尝试创建任意组合序列对于布局引擎和
  • 如何只打印文本?

    我正在尝试将一些文本发送到打印机 我只需要打印文本 在页边距处包裹并在必要时流到另一页 这是我现在正在做的一个最小的例子 FXML private void print TextArea printArea new TextArea tex
  • 向数组添加一个元素

    我正在从源读取数据作为数组 一个 我需要向数组中再添加一个元素 获得数组后 我创建一个容量为 n 1 的新数组 并将所有元素复制到新数组中 并将新元素作为数组的最后一个元素 我可以做这个 有一个更好的方法吗 尤其是 Linq 您所描述的实际
  • 如何与 dart 中的 js 交互?

    不 这与同名的其他问题不同 有一些看似相同的包可以做到这一点 但具有不同的 api http dart lang github io js interop docs js html https api dartlang org docs c
  • 输入按钮 onClick 删除最接近的 div

    呃 为什么这不起作用 我多次在我的网站上使用类似的代码 但现在不起作用 HTML div span a span div
  • 可以点击jquerydraggableparent开始拖动吗?

    我有这样的标记 div div div div 用这样的JS colorpicker selector draggable containment colorpicker background handle colorpicker sele
  • 来自 ant 的空 Junit 报告

    我正在尝试使用 ant 运行 junit 测试并生成报告 我能够成功运行测试 但报告文件为空 我究竟做错了什么 这是我的 build xml
  • 我应该使用什么来代替 iOS7 中已弃用的 GKLeaderboardViewController?

    我为 IOS 7 更新了我的应用程序 游戏中心有一些已弃用的内容 例如加载和关闭排行榜和成就 我该如何修复它们 它说 GKLeaderboardViewController 已弃用 IBAction LeaderBoardsButton i
  • DLL 的 .NET 混淆:如何保护我的代码?

    我正在探索与一家小公司建立合作伙伴关系 该公司正在寻找一种可以提高利润的算法 我有一些可以帮助他们的原型软件 我的软件核心是非常保密的 如果公司拿到了 他们肯定就不需要我了 我肯定会和他们签合同 我会有法律保护 但我仍然想在他们和我的 商业
  • Spring REST如何以不同的方式验证请求体?

    With Valid我们可以解析请求正文并使用注释对其进行验证 例如 NotEmpty Size min 5 有没有一种方法可以有多种方法来验证身体 例如 在某些端点上 我想忽略一些验证器 NotNull就我而言 我的猜测是创建一个自定义注