验证

在 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());
}