验证

在 Spring Data REST 中注册 Validator 实例有两种方法:通过 bean 名称连接或手动注册验证器。对于大多数情况,简单的 bean 名称前缀样式就足够了。

为了告诉 Spring Data REST 你想要将特定的 Validator 分配给特定事件,请在 bean 名称前加上事件名称。例如,为了在将新的 Person 类实例保存到存储库之前验证它们,你将在你的 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());
}