由于应用程序的架构,我需要将约束注释与其实现分离。当未显式设置 validatedBy
属性时,我正在考虑使用 @Size
注释中使用的方法:
@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER })
@Retention(RUNTIME)
@Documented
@Constraint(validatedBy = { })
public @interface Size { .. }
但是我找不到任何有关如何注册此约束的实现的信息,通过 spring 的 @Component
注册组件没有帮助,代码失败并显示:No validator might be找到约束
最佳答案
JSR-303 允许您在 constraint-mappings 中声明约束文件。
然后您可以
引用 validation.xml 中的约束映射文件.
<constraint-mapping>META-INF/validation/order-constraints.xml</constraint-mapping>
或
使用 java api 添加约束映射文件 Configuration.addMapping(InputString)
Add a stream describing constraint mapping in the Bean Validation XML format.
关于java - 将 ConstraintValidator 实现注册到 Constraint,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38126768/