2016-01-20 30 views
1

我在DAO接口中看到了很多@Validated註解,我沒有寫。例如:DAO接口中的@Validated註釋是否有幫助?

@Validated 
public interface CompanyDAO extends BaseDAO<Company> { 

    public List<Company> list(); 

我應該從這個期待什麼行爲:

  • 驗證傳遞給DAO的所有對象將它們保存到數據庫之前?
  • 驗證DAO從數據庫中檢索的所有對象?
  • 他們倆?
  • 沒有什麼。這個註解不應該放在DAO接口中。

回答

1

,你可能不知道的只是幾個要點:

  • 8.8 Spring Validation of 8. Validation, Data Binding, and Type Conversion in the manual指定

    爲了符合Spring驅動的方法驗證,所有的目標類都需要用Spring的註釋@Validated註釋,可選擇聲明要使用的驗證組。使用Hibernate Validator和Bean Validation 1.1提供程序查看MethodValidationPostProcessor javadoc以瞭解安裝細節。

  • MethodValidationPostProcessor

    適用方法對它們的參數和/或在它們的返回值JSR-303約束註釋(在該方法級別指定的後一種情況下,典型地爲內聯註釋),例如:

    public @NotNull Object myValidMethod(@NotNull String arg1, @Max(10) int arg2) 
    

    目標類加入了這樣註解的方法必須annotat使用Spring的經過驗證的類型級註釋來處理內聯約束註釋的搜索方法。驗證組也可以通過@Validated指定。默認情況下,JSR-303將僅針對其默認組進行驗證。

所以,也許在回答你的問題

我應該期待什麼行爲

是:無論約束在代碼中給出。