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