驗證

在 Spring Data REST 中註冊 Validator 實例有兩種方式:透過 Bean 名稱注入或手動註冊驗證器。在大多數情況下,簡單的 Bean 名稱前綴樣式就已足夠。

為了告知 Spring Data REST 您想要將特定的 Validator 指派給特定的事件,請在 Bean 名稱加上事件的前綴。例如,為了在將 Person 類別的新實例儲存到 Repository 之前進行驗證,您會在 ApplicationContext 中宣告一個 Validator<Person> 的實例,並將 Bean 名稱命名為 beforeCreatePersonValidator。由於 beforeCreate 前綴符合已知的 Spring Data REST 事件,因此該驗證器會被注入到正確的事件。

手動指派驗證器

如果您不想使用 Bean 名稱前綴方法,則需要向負責在正確事件後調用驗證器的 Bean 註冊您的驗證器實例。在實作 RepositoryRestConfigurer 的組態中,覆寫 configureValidatingRepositoryEventListener 方法,並在 ValidatingRepositoryEventListener 上呼叫 addValidator,傳遞您希望觸發此驗證器的事件以及驗證器的實例。以下範例說明如何執行此操作

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