@Valid注释在Spring Boot中不起作用

2024-06-22

这是场景,一个控制器注释为@RestController and a PUT方法,其@RequestBody论证需要得到验证。我用@Valid参数上的注释和@NotNull,@Minbean 字段上的注释,但它们不起作用。

代码在这里:

豆子:

public class PurchaseWrapper {
  @DecimalMin(value = "0.00",message = "discount must be positive")
  @NotNull
  private BigDecimal discount;
  @NotNull
  private Long merchandiseId;
  @NotNull
  private Long addressId;
  @Min(1)
  @NotNull
  private Integer count;
}

控制器

@RestController
@RequestMapping("merchandises")
public class MerchandiseController {

@RequestMapping(value = "purchase",method = RequestMethod.PUT)
public ResponseEntity<RestEntity> purchase(@Valid @Validated @RequestBody PurchaseWrapper purchaseWrapper,
                                           @RequestParam String token){
    return new ResponseEntity<>(merchandiseService.purchase(purchaseWrapper,token),HttpStatus.OK);
}

@Autowired
PurchaseWrapperValidator purchaseWrapperValidator;

@InitBinder(value = "purchaseWrapper")
protected void initBinder(WebDataBinder binder) {
    binder.setValidator(purchaseWrapperValidator);
}
}

pom 文件:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    <dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator</artifactId>
    </dependency>

我不知道这里出了什么问题......我想这是我使用的问题@Valid and @Validated注释都在同一个参数上。但即使我省略了@Validated注释,将@Valid仍然无法正常工作...

有任何想法吗?


我明白了...这是因为PurchaseWrapperValidator它实现了org.springframework.validation.Validator覆盖默认值javax.validation.*注释。

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

@Valid注释在Spring Boot中不起作用 的相关文章

  • 限制执行第三方软件的线程的权限

    我正在开发一个基于 Eclipse 的应用程序 能够执行第三方组件 不是 eclipse plugin 每个组件都有一个列出权限 以及相应动机 的自定义描述符 这样最终用户可以决定是否执行它 组件在单独的线程中执行 如何根据描述符限制这些线
  • 如何选择主题与队列

    当我们设计应用程序时如何选择Topic Queue类型实现 我知道 a 如果有多个消费者使用该消息 则使用 Topicb 如果只有一个消费者则使用Queue 请提供更多需要考虑的点 比如并发 消息持久化 负载均衡等等 Thanks Rw 如
  • RSA Java 加密和 Node.js 解密不起作用

    我有一个系统 需要在 javascript 中生成 RSA 密钥对 然后将公钥存储在服务器端的数据库中 作为字符串 然后 Java 中的服务器端将使用存储的公钥对字符串进行加密密钥并将其发送到客户端 客户端将使用私钥解密该字符串 我在客户端
  • 问题:将大数据传递给第二个 Activity

    我有一个奇怪的问题 我在网上浏览但没有找到答案 我仍然是android编程的初学者 那么让我们开始吧 我想做的就是用一些数据调用第二个活动 它适用于小数据 但如果数据变大 第二个 Activity 将不会显示 第一个 Activity 将完
  • 使用 java.util.Set 时的 Jackson bug(或功能!?) - mySet.size() 始终为 1

    我正在使用 Jackson 2 2 0 和 Spring 3 2 0 以及 Hibernate 4 2 2 我最近不得不通过 POST 向服务器发送一组对象 cancelationDate 2013 06 05 positions pric
  • 如何将堆栈跟踪转换为字符串?

    转换结果的最简单方法是什么Throwable getStackTrace 到描述堆栈跟踪的字符串 Use Throwable printStackTrace PrintWriter pw https docs oracle com java
  • 在运行时后期更改 SessionFactory 数据源 jdbcurl

    我正在为没有网络连接的环境编写一个桌面java应用程序 我试图将应用程序数据尽可能安全地存储在加密的进程内 hsqldb 中 并使用未加密的用户信息 hsqldb Hsqldb 要求在创建连接时在 jdbcurl 中设置 crypto ke
  • java中简单程序中的“未为类型定义方法”错误

    所以我只是想学习 Java 在观看了一些教程并阅读了一些基本内容之后 我对为什么它无法运行感到困惑 package Test public class TestProg public static void main String args
  • spring Kafka模型不在可信包中

    我正在研究微服务spring Kafka 2 1 5 and spring boot 2 0 5 第一个服务将向卡夫卡产生一些消息 第二个服务将消耗它们 在消耗时我遇到了问题 Caused by java lang IllegalArgum
  • Run As JUnit 未出现在 Eclipse 中 - 使用 JUnit4

    我正在尝试为我的 Web 应用程序编写 JUnit4 测试 它们之前一直工作正常 但是 现在当我尝试通过右键单击类文件 gt Run As gt JUnit Test 来运行测试时 我看不到该选项 我认为这可能是因为一位同事意外提交了一些
  • 获取 Spring Boot 中当前活动数据源的引用

    我想通过实现数据库数据初始化DataSourceInitializer 我将这些方法放在我的 Spring Boot 主方法下面 但似乎它根本没有被执行 我尝试故意删除字符只是为了触发一个错误来确认执行 什么也没有发生 Configurat
  • Apache HTTPClient SSLPeerUnverifiedException

    使用 Apache HttpClient 4 2 1 使用从基于表单的登录示例复制的代码 http hc apache org httpcomponents client ga examples html http hc apache or
  • Java 1.8 和 tomcat 6.0.53 引起:java.io.EOFException:SSL 对等点错误关闭

    java cp catalina jar org apache catalina util ServerInfo Server version Apache Tomcat 6 0 53 Server built Apr 19 2017 22
  • Java 多态性中的字段如何工作? [复制]

    这个问题在这里已经有答案了 我正在读书面试问题 http javabypatel blogspot in 2016 04 java interview questions html关于java 发现了很好的例子 但感到困惑 因为没有很好 更
  • Java Reflection:为什么这么慢?

    我一直避免使用 Java 反射 因为它速度缓慢 我在当前项目的设计中达到了一个点 能够使用它将使我的代码更具可读性和优雅性 所以我决定尝试一下 我只是对这种差异感到惊讶 我注意到有时运行时间几乎延长了 100 倍 即使在这个简单的例子中 它
  • JRuby调用了错误的方法

    我在调用 Java 方法时遇到了一个奇怪的问题JRuby http en wikipedia org wiki JRuby 在我的 Java 类中 这些方法定义了两次 看来 JRuby 调用了错误的方法 所以我尝试使用java method
  • SwingWorker 和 Executor 的区别

    我正在使用 SwingWorker 在我正在制作的应用程序上执行一些重负载任务 虽然今天我遇到了 Executor 类和这个例子 Executors newCachedThreadPool execute new Runnable publ
  • 在java中访问dll方法

    我正在尝试访问java中用c 编写的dll方法 从下面的代码我试图构建已成功生成的 dll using System using Microsoft Win32 namespace CyberoamWinHelper public clas
  • 从java类文件获取apache webcontents文件夹的绝对路径[重复]

    这个问题在这里已经有答案了 需要在动态 Web 应用程序内获取 java 类文件中的绝对路径 实际上我需要获取 apache webapps 文件夹的路径 部署 webapps 的位置 e g apache root webapps my
  • 在 Ubuntu 上的 Tomcat 中加载共享本机库

    如何在 Ubuntu 上的 Tomcat6 中加载共享库 我创建了一个名为 libawragrids so 的库 awragrids 并将其放置在 var lib tomcat6 shared 我在调用启动 tomcat 的终端中设置了以下

随机推荐

  • GCP 多久更新一次 GCP 控制台上显示的帐单费用?是实时的吗?

    Google 云平台多久更新一次 刷新 GCP 控制台上显示的账单费用 是有固定的延迟还是实时的 计费费用每日更新 发票每月生成 还可以通过编程方式按需检查使用情况 按照说明进行操作 gt https cloudplatform googl
  • 如何使用 NSURLConnection 上传文件和其他参数

    我在用NSURLConnection发送相同的数据 NSString 到服务器 我想向它们添加图像或文件 那么内容类型的值是多少 Encoding NSData encodingData NSMutableDictionary dictio
  • 将图的 BFS 代码转换为 DFS 代码

    如果这个问题听起来模棱两可 我很抱歉 但我在采访中被问到了这个问题 为图 树中的 BFS 编写一个程序 我使用队列编写了流行的代码 现在他要求我通过修改我刚刚编写的 BFS 代码的一行来将其转换为 DFS 代码 我能想到的唯一答案是使用堆栈
  • 逐渐斜体?

    有没有办法逐渐从普通文本过渡到斜体 并稍微改变每个字符的倾斜角度 罗宾的想法确实有效 DEMO http dabblet com gist 3395805 但是那个小提琴有很多问题 我不确定我是否可以将它们放入一条评论中 首先 span i
  • R/Shiny/Leaflet 中的多点选择

    我有一张在 R Shiny 应用程序中使用 Leaflet 生成的地图 并且能够使用如下代码监听地图上点上的事件点击 observeEvent input map marker click p input map marker click
  • Wireshark 本地主机流量捕获[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我用 C 语言编写了一个在本地主机上运行的简单服务器应用程序 如何使用 Wireshark 捕获本地主机流量 如果您使用的是 Wind
  • process.text 的错误等效项?

    可以获得整个输出流 http groovy codehaus org Process Management通过使用 text def process ls l execute println Found text process text
  • 在 Go 中调用外部命令

    如何在GO中调用外部命令 我需要调用外部程序并等待它完成执行 在执行下一条语句之前 您需要使用执行包 http golang org pkg os exec 使用启动命令Command http golang org pkg os exec
  • 升级 TypeScript 后,Angular 控制器注册现在无法编译

    我们使用的是 TypeScript 2 2 升级到 2 4 后 我们现在可以在编译时得到 错误 TS2345 typeof TopMenuController 类型的参数不可分配给 Injectable 类型的参数 类型 typeof To
  • sql server 恢复-登录失败

    我在 sql server 2008 R2 上有一个本地数据库并且工作正常 我的主机安装了 sql server 2012 在托管服务器上创建新数据库后 我可以使用给定的托管凭据轻松连接到空白数据库 我已经创建了 Sql Server 20
  • 更新到 0.5.2 后,按键事件在 Meteor 中的“输入”元素之外停止工作

    我刚刚发现升级到 Meteor 0 5 2 从 0 5 后 关键事件 keypress keydown keyup 的事件处理不再为我工作 其他事件如 点击 和 模糊 工作得很好 即使在示例应用程序中 这样的代码也不会执行任何操作 Temp
  • Java 文件锁定和 Windows - 锁定不是“绝对的”?

    我正在尝试在 Windows 环境中使用 Java 锁定文件FileLock http java sun com j2se 1 5 0 docs api java nio channels FileLock html我遇到了一个问题 锁定文
  • Imagemagick 合成图像反转

    我想给图像加水印 所以我使用了 compose multiply 但由于某种原因它无法按预期工作 命令 magick image jpg over png compose multiply resize 2048x2048 gravity
  • 如何撤销MySQL用户对一张表的权限?

    当我向用户授予某些特定表的权限时 GRANT ALL PRIVILEGES ON table1 TO user1 localhost IDENTIFIED BY password GRANT ALL PRIVILEGES ON table2
  • 如何转义java的SimpleDateFormat中的单引号

    我有一个像这样的日期输入日期 ts 2012 08 13 02 30 01 我相信我可以用单引号转义无效部分 但我在无效部分中有一个单引号 我该如何逃脱呢 我尝试了几种模式 但不起作用 Thanks 根据SimpleDateFormat 的
  • 使用 Carrierwave 在 Heroku 上上传大文件

    我即将开始一个业余爱好项目 我将在其中将大量文件上传到 S3 有些文件会大到 50 100MB 我想使用 Heroku 但如果需要的话可以回退到 EC2 Heroku Carrierwave S3 可以解决这个问题吗 或者文件上传有限制吗
  • 我可以编写一个返回函数的函数类型吗?

    以下内容在 gcc 和 clang 上均无法编译 include
  • 为什么图标按钮不居中?

    我正在开发 Flutter 应用程序 但我不明白为什么我的图标按钮没有位于页面中间的中心 我将代码包装在Center 这是我的页面 https i stack imgur com I08dJ jpg https i stack imgur
  • 在 JavaFX 图表中添加一条线

    我在 JavaFX 中的定义位置添加一行时遇到问题 该线必须是一条恒定线 如下所示 如何向 JavaFX 图表添加价值标记 https stackoverflow com questions 15615881 how to add a va
  • @Valid注释在Spring Boot中不起作用

    这是场景 一个控制器注释为 RestController and a PUT方法 其 RequestBody论证需要得到验证 我用 Valid参数上的注释和 NotNull Minbean 字段上的注释 但它们不起作用 代码在这里 豆子 p