Hibernate Validator 4独立:类约束缓存

时间:2013-05-29 11:45:45

标签: java validation hibernate-validator

我想将Hibernate Validator 4用作独立包(即没有 春/休眠)。我找到的代码如下(MyBean是一些 bean使用Hibernate Validator 4注释,myBean是它的实例),和 它确实返回了约束违规行为:

    ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
    Validator validator = factory.getValidator();   
    Set<ConstraintViolation<MyBean>> result = validator.validate(myBean);

但是,我意识到Validator实例似乎不是每个类; 如果有人知道:Validator是否缓存了从处理myBean获得的约束 (这样当我再次为同一个类进行调用时,例如validator.validate(myBean2), 它不会再次搜索注释等)? 如果是这样,也许有人也知道这些约束在哪里得到缓存?

1 个答案:

答案 0 :(得分:0)

正如您所说,Hibernate Validator缓存元数据。这是负责的班级 - https://github.com/hibernate/hibernate-validator/blob/master/engine/src/main/java/org/hibernate/validator/internal/metadata/BeanMetaDataManager.java

请注意,没有用于与缓存交互的API。在内存需求之后清除缓存。