public class LazyInitValidatorConfig {
private Validator validator;//生产的单例资源
private boolean needValidate = true;
private static LazyInitValidatorConfig lazyInitConfig = new LazyInitValidatorConfig();
private LazyInitValidatorConfig(){
}
private synchronized Validator init(){//锁加在了实例方法上
if(validator != null){
return validator;
}
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
validator = factory.getValidator();
return validator;
}
public static Validator getValidator(){//锁没有加在这里,提高了该方法的并发效率
if(lazyInitConfig.validator == null){
lazyInitConfig.init();
}
return lazyInitConfig.validator;
}
}
改进的单例模式,解决并发生成多实例问题,并且提高调用时的性能
最新推荐文章于 2024-12-25 16:22:55 发布