在哪个层实现验证器dao响应?

时间:2011-08-19 22:31:53

标签: java validation service exception-handling dao

我有一个DAO,可以调用REST WS。为了防止WS发送的无效数据,我想实现一个验证器。

我必须在哪里实施它?

1 - 在dao层中,在DAO对象内。

2 - 在dao层但在一个单独的类中,因为DAO只能执行CRUD

3 - 在服务层

其他问题:我想在发生无效数据时抛出异常。

已选中还是未选中?

我确切地说,我使用Spring Security,当我将调用我的服务时,我将必须捕获此异常,以便在AuthenticationException spring异常中对其进行转换。

非常感谢。

1 个答案:

答案 0 :(得分:1)

这取决于谁拥有验证从WS发回的数据所需的知识。如果服务具有该知识(可能是因为它首先创建数据,但不是保证数据),那么让服务完成验证。它可以抛出验证失败的异常,因为普通的java组件会抛出(当它出现在客户端时会被包装在SoapException中)。

如果验证规则只为客户端所知,那么我会编写另一个图层并从DAO中调用它。