AbstractCachingViewResolver类简介说明

java-教程王 SpringMVC 发布时间:2022-01-01 10:14:01 阅读数:12835 1
下文讲述AbstractCachingViewResolver抽象类的简介说明,如下所示:

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);
    }
}
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaFramework/SpringMVC/202201/2113.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者