我现在感觉有点矛盾。我有一个使用 Stripes 作为 MVC 框架和 Spring/Hibernate 作为后端的 Web 应用程序。我的 MVC 层中有一个帐户注册方法,需要以下验证:
- 用户名尚未被占用
- 提供的电子邮件地址尚未与其他帐户关联
我在 Stripes(MVC 层)中有一个验证方法来检查这两种情况,但想知道我的服务层是否应该重复这些检查?如果服务层接口作为 Web 服务公开,那么我认为验证将是一个好主意,但如果它仅用于 Web 应用程序的上下文中,是否需要它?
编辑:我不打算复制验证代码 - 我的意思是在两个地方复制验证方法调用。
我认为我的选择是:
- 复制 MVC 和服务层中的验证调用
- 仅在 MVC 层执行此验证
- 仅在服务层中执行此验证。
这里的最佳做法是什么?我正在寻找关于我应该选择哪个选项以及为什么选择的建议/意见。
请注意,注册表单的输入字段有简单的验证检查(如检查空白),我认为这些应该仅由 MVC 验证处理;我只关心更复杂的验证。