【问题标题】:Spring: When to chose which validation method?Spring:何时选择哪种验证方法?
【发布时间】:2018-10-05 13:33:45
【问题描述】:

我有一个带有 JPA 存储库的 Spring 应用程序。现在我想添加一些验证。我找到了几种解决方案,但没有一个是完美的,我不知道在这种情况下应该使用哪种方法:

1.) 我在我的模型对象中使用验证注释(例如@NotNull)。但这会产生一个无用的休息错误响应,例如 ""Internal Server Error","message":"Could not commit JPA transaction; "

2.) 我正在使用 'Validator' 接口进行自定义验证,但我收到 spring“编译器”错误“验证器拼写错误”

3.) 一些教程使用“ConstraintValidator”接口

4.) 一些教程编写了用于验证的自定义休息方法。

我应该什么时候使用哪个以及如何解决我的问题?

【问题讨论】:

  • 您的问题到底是什么?你应该选择对你最不利的那个。
  • 是的,选择一个适合你的。就像选择你喜欢工作的框架/工具一样
  • 一般来说你的对象会通过多重验证。如果您有一个休息端点,您应该在调用存储库保存方法并返回 HTTP 响应之前进行验证。此验证应通过约束加倍,以确保在数据库中保持一致。不用担心,在一般的 Web 应用程序中,您会在客户端进行额外的验证。

标签: java spring spring-data-jpa spring-data spring-rest


【解决方案1】:

这是您可以轻松管理的方式:

  1. 在资源文件夹下的/messages/messages.properties 中定义所有自定义消息。

    所以如果你的错误属性是:error.user.name = User name can not be null

  2. 然后在您的 pojo 中为该属性调用您的特定属性。

     @NotNull(message = "error.user.name")
    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多