AbstractCachingViewResolver类简介说明
下文讲述AbstractCachingViewResolver抽象类的简介说明,如下所示:
此抽象类的用途用于将解析过的视图缓存起来,
下次使用视图时,可直接从缓存中获取,加快数据的获取速度,如果没有则创建一个新的视图对象,并将其放入到map对象中缓存 例:
AbstractCachingViewResolver抽象类
AbstractCachingViewResolver是一个抽象类此抽象类的用途用于将解析过的视图缓存起来,
下次使用视图时,可直接从缓存中获取,加快数据的获取速度,如果没有则创建一个新的视图对象,并将其放入到map对象中缓存 例:
@Override public View resolveViewName(String viewName, Locale locale) throws Exception { // 是否启用缓存,可通过setCache()方法或setCacheLimit()方法开启缓存,是一个ConcurrentHashMap,默认缓存大小1024 if (!isCache()) { return createView(viewName, locale); } else { // 得到 view 在缓存中的 key 值 Object cacheKey = getCacheKey(viewName, locale); View view = this.viewAccessCache.get(cacheKey); // 如果没有找到 view 则创建,采用双重校验的方式进行安全创建 if (view == null) { synchronized (this.viewCreationCache) { view = this.viewCreationCache.get(cacheKey); if (view == null) { // 具体的创建方式由子类实现 view = createView(viewName, locale); if (view == null && this.cacheUnresolved) { view = UNRESOLVED_VIEW; } if (view != null) { this.viewAccessCache.put(cacheKey, view); this.viewCreationCache.put(cacheKey, view); } } } } return (view != UNRESOLVED_VIEW ? view : null); } }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。