【问题标题】:MVC web app - where to ensure data validity?MVC Web 应用程序 - 在哪里确保数据有效性?
【发布时间】:2012-01-26 10:44:08
【问题描述】:

我使用的是 Spring 3,但我认为这个问题的适用范围更广。

我有一个带有前端控制器的网络应用程序(Spring DispatcherServlet)。从那里调用一个服务,该服务又使用一个或两个 DAO 来完成所需的任务,例如将记录插入到数据库中。

我在哪里确保数据有效?假设我有一个最大长度为 50 个字符的条目 - 在什么时候我应该断言输入的长度是

如果我在控制器中检查有效性,那么可能会编写其他调用服务的代码而不验证数据。

我可以在服务层检查有效性,但也许有人可能会编写一个不检查数据有效性的服务,从而将“坏”数据传递给 DAO。

在 DAO 中进行有效性检查似乎很明显——这会影响我测试代码的能力吗?

检查数据有效性的最佳做法是什么?

【问题讨论】:

    标签: spring model-view-controller spring-mvc validation


    【解决方案1】:

    如果服务可以从控制器以外的地方调用,您可以在服务层进行验证。如果输入数据无效,您可以从服务中引发自定义异常。调用者可以通过查看 Exception 的详细信息来获取有关哪些数据导致验证错误的信息。

    【讨论】:

    • 谢谢。我同意你的逻辑。由于我有使用多个 DAO 的服务,因此我在服务层中进行了一些简单的验证,但由于 DAO 是数据存储之前的最后一道“防线”,因此我在那里进行了最严格的验证。
    猜你喜欢
    • 1970-01-01
    • 2021-03-21
    • 2017-05-13
    • 1970-01-01
    • 1970-01-01
    • 2011-09-22
    • 2011-03-10
    • 1970-01-01
    • 2010-09-08
    相关资源
    最近更新 更多