JSR 303 Bean 验证可以与 Spring Data Rest 一起使用吗?

我从文档 http://docs.spring.io/spring-data/rest/docs/2.1.2.RELEASE/reference/html/validation-chapter.html 中了解到,我可以声明具有某些前缀的验证程序。

我使用的是 JSR 303,因此我的域实体使用验证注释进行注释。

可以 - 如果是,如何 - 我将JSR 303 Bean验证与Spring Data Rest一起使用?

PS:我正在使用弹簧靴


答案 1

这似乎有效:

@Configuration
protected static class CustomRepositoryRestMvcConfiguration extends RepositoryRestMvcConfiguration {

    @Autowired
    private Validator validator;

    @Override
    protected void configureValidatingRepositoryEventListener(ValidatingRepositoryEventListener validatingListener) {
        validatingListener.addValidator("beforeCreate", validator);
        validatingListener.addValidator("beforeSave", validator);
    }
}

答案 2

要自定义 spring 数据-rest 配置,请注册(或扩展)并针对您的特定用例实现或覆盖该方法。RepositoryRestConfigurerRepositoryRestConfigurerAdapterconfigureValidatingRepositoryEventListener

public class CustomRepositoryRestConfigurer extends RepositoryRestConfigurerAdapter {

    @Autowired
    private Validator validator;

    @Override
    public void configureValidatingRepositoryEventListener(ValidatingRepositoryEventListener validatingListener) {
        validatingListener.addValidator("beforeCreate", validator);
        validatingListener.addValidator("beforeSave", validator);
    }
}

推荐