我有一个DAO,可以调用REST WS。为了防止WS发送的无效数据,我想实现一个验证器。
我必须在哪里实施它?
1 - 在dao层中,在DAO对象内。
2 - 在dao层但在一个单独的类中,因为DAO只能执行CRUD
3 - 在服务层
其他问题:我想在发生无效数据时抛出异常。
已选中还是未选中?
我确切地说,我使用Spring Security,当我将调用我的服务时,我将必须捕获此异常,以便在AuthenticationException spring异常中对其进行转换。
非常感谢。
答案 0 :(得分:1)
这取决于谁拥有验证从WS发回的数据所需的知识。如果服务具有该知识(可能是因为它首先创建数据,但不是保证数据),那么让服务完成验证。它可以抛出验证失败的异常,因为普通的java组件会抛出(当它出现在客户端时会被包装在SoapException中)。
如果验证规则只为客户端所知,那么我会编写另一个图层并从DAO中调用它。