我想使用Hibernate Validator 4作为一个独立的包(即没有Spring/Hibernate)。我找到的代码如下(MyBean是带有Hibernate Validator4注释的bean,myBean是它的实例),它确实返回了违反约束的情况:
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
Validator validator = factory.getValidator();
Set<ConstraintViolation<MyBean>> result = validator.validate(myBean);然而,我意识到验证器实例似乎不是每个类的;如果有人知道:验证器是否缓存了它从处理myBean中获得的约束(这样当我再次调用相同的类时,例如validator.validate(myBean2),它就不会再次搜索注释等)?如果是这样的话,也许人们也知道这些约束到底被缓存在哪里?
发布于 2013-05-30 16:10:46
正如您所说,Hibernate Validator缓存元数据。下面是负责的类- https://github.com/hibernate/hibernate-validator/blob/master/engine/src/main/java/org/hibernate/validator/internal/metadata/BeanMetaDataManager.java
请注意,没有与缓存交互的API。在内存需求之后清除高速缓存。
https://stackoverflow.com/questions/16812999
复制相似问题