应该在哪里进行业务验证

时间:2014-04-17 12:28:05

标签: java java-ee

假设架构是

  1. Struts框架或泽西资源
  2. 立面图层
  3. 业务层
  4. 数据访问对象层DAO
  5. 虽然输入字段验证是在表示层完成的,即Struts Action类或jersey资源类

    但我的问题是,应该在哪里进行业务级别验证,并将相同的结果传递给UI。

    即假设资源是

    employee / {employeeId}方法DELETE

    现在首先需要验证employeeId是否存在,因此应该在资源级别,外观级别或业务级别进行验证以及如何将其作为最佳实践进行验证。

    另请注意,此业务验证需要DAO层访问,因为如果employeeId确实存在,则签入DB。

    提前致谢

3 个答案:

答案 0 :(得分:0)

对于你所要求的方法,有很多论据。我更喜欢将验证留给业务层,让服务层或多或少地处理路由和错误报告。祝你好运!

答案 1 :(得分:0)

取决于您选择的体系结构和框架。

示例:如果您有一个数据库但服务器场,则验证应该更靠近数据库。如果您可以在DAO中锁定/解锁数据库,则应在验证之前先锁定员工行。

还取决于配置:

  • 如果您使用乐观或悲观锁定。
  • 如果您在实体上有@version字段。
  • 还有很多。

答案 2 :(得分:0)

我建议你在dao层编写与逻辑相关的数据库访问,它将结果返回给服务层,然后返回到Action类。你应该在你的动作类中验证它。