Flex / Spring / Hibernate验证 - spring Validator和ExceptionTranslator

时间:2011-04-26 18:18:36

标签: spring dao validation

我是提到的技术的初学者,如果我问一些愚蠢的问题,请原谅我。

我的应用中的验证代码存在设计问题。我经常打破DRY原则。此外,验证让我感到困惑。我总是质疑自己在哪里放置一些验证内容,检查与未检查,传播什么,验证什么等。但是,有一些关于提到的东西的主题,所以我将专注于我的F / S / H技术的具体问题。

例如,我的DAO 保存方法有以下验证:

public void save(Person p){  
    if(p==null) throw IllegalArgumentException("Person object is required...");
    //...
}

我在DAO层中的删除,更新和读取方法中也具有完全相同的验证。

我正在寻找使用 com.springframework.validation.Validator 接口的解决方案,但我遇到了将错误代码传播到Flex客户端的问题。 也许,我可以做这样的事......

public void save(Person p){
    BeanPropertyBindingResult err = new BeanPropertyBindingResult(p,"Errors");              
    //myValidator will be injected   
    myValidator.validate(p,err);
    //...
    throw MyException("Message",err);
    //...
}

我不知道这是不是很好的做法。使用什么验证方法来最小化此类验证代码的重复。如果有人能给我一些方向,提示,链接,我会很感激。

1 个答案:

答案 0 :(得分:0)

也许您应该尝试使用像Contract4j这样的Design by Contract注释驱动解决方案?