驗證

在 Spring Data REST 中,有兩種方法可以註冊 Validator 例項:透過 bean 名稱裝配它,或者手動註冊驗證器。在大多數情況下,簡單的 bean 名稱字首樣式就足夠了。

為了告訴 Spring Data REST 你想把特定的 Validator 分配給特定的事件,在 bean 名稱前加上相關的事件。例如,為了在新的 Person 類的例項被儲存到儲存庫之前進行驗證,你可以在你的 ApplicationContext 中宣告一個 Validator<Person> 的例項,其 bean 名稱為 beforeCreatePersonValidator。由於 beforeCreate 字首與已知的 Spring Data REST 事件相匹配,該驗證器將被連線到正確的事件。

手動分配驗證器

如果你不喜歡使用 bean 名稱字首方法,你需要向 bean 註冊你的驗證器例項,該 bean 的任務是在正確的事件之後呼叫驗證器。在你的實現了 RepositoryRestConfigurer 的配置中,覆蓋 configureValidatingRepositoryEventListener 方法,並在 ValidatingRepositoryEventListener 上呼叫 addValidator,傳遞你想要觸發此驗證器的事件以及驗證器的例項。下面的例子展示瞭如何這樣做。

@Override
void configureValidatingRepositoryEventListener(ValidatingRepositoryEventListener v) {
  v.addValidator("beforeSave", new BeforeSaveValidator());
}