当前位置: 首页>>代码示例>>Java>>正文


Java CacheLoader类代码示例

本文整理汇总了Java中com.google.common.cache.CacheLoader的典型用法代码示例。如果您正苦于以下问题:Java CacheLoader类的具体用法?Java CacheLoader怎么用?Java CacheLoader使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


CacheLoader类属于com.google.common.cache包,在下文中一共展示了CacheLoader类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: AccessTokenJob

import com.google.common.cache.CacheLoader; //导入依赖的package包/类
public AccessTokenJob() {
	logger.info("init");
	accessTokenCache = CacheBuilder.newBuilder()
			// 设置并发级别为200,并发级别是指可以同时写缓存的线程数
			.concurrencyLevel(200)
			// 设置写缓存后1分钟过期
			.expireAfterWrite(90, TimeUnit.MINUTES).initialCapacity(10).maximumSize(100)
			// 设置要统计缓存的命中率
			.recordStats()
			// 设置缓存的移除通知
			.removalListener(new RemovalListener<AppIdSecret, String>() {
				@Override
				public void onRemoval(RemovalNotification<AppIdSecret, String> notification) {
					logger.info(notification.getKey() + " was removed, cause by " + notification.getCause());
				}
			}).build(new CacheLoader<AppIdSecret, String>() {
				// build方法中可以指定CacheLoader,在缓存不存在时通过CacheLoader的实现自动加载缓存
				@Override
				public String load(AppIdSecret appIdSecret) throws Exception {
					Token token = CommonUtil.getAccessToken(appIdSecret.getAppId(), appIdSecret.getAppSecret());
					return token.getToken();
				}
			});
}
 
开发者ID:tojaoomy,项目名称:private-WeChat,代码行数:25,代码来源:AccessTokenJob.java

示例2: createFilesCache

import com.google.common.cache.CacheLoader; //导入依赖的package包/类
private LoadingCache<Integer, Bucket> createFilesCache(final MinebdConfig config) {
    Preconditions.checkNotNull(config.parentDirs);
    final Integer maxOpenFiles = config.maxOpenFiles;
    Preconditions.checkNotNull(maxOpenFiles);
    Preconditions.checkArgument(maxOpenFiles > 0);
    return CacheBuilder.newBuilder()
            .maximumSize(maxOpenFiles)
            .removalListener((RemovalListener<Integer, Bucket>) notification -> {
                logger.debug("no longer monitoring bucket {}", notification.getKey());
                try {
                    notification.getValue().close();
                } catch (IOException e) {
                    logger.warn("unable to flush and close file " + notification.getKey(), e);
                }
            })
            .build(new CacheLoader<Integer, Bucket>() {
                @Override
                public Bucket load(Integer key) throws Exception {
                    return bucketFactory.create(key);
                }
            });
}
 
开发者ID:MineboxOS,项目名称:minebox,代码行数:23,代码来源:MineboxExport.java

示例3: casEventRepository

import com.google.common.cache.CacheLoader; //导入依赖的package包/类
@Bean
public CasEventRepository casEventRepository() {
    final LoadingCache<String, CasEvent> storage = CacheBuilder.newBuilder()
            .initialCapacity(INITIAL_CACHE_SIZE)
            .maximumSize(MAX_CACHE_SIZE)
            .recordStats()
            .expireAfterWrite(EXPIRATION_TIME, TimeUnit.HOURS)
            .build(new CacheLoader<String, CasEvent>() {
                @Override
                public CasEvent load(final String s) throws Exception {
                    LOGGER.error("Load operation of the cache is not supported.");
                    return null;
                }
            });
    LOGGER.debug("Created an in-memory event repository to store CAS events for [{}] hours", EXPIRATION_TIME);
    return new InMemoryCasEventRepository(storage);
}
 
开发者ID:mrluo735,项目名称:cas-5.1.0,代码行数:18,代码来源:CasEventsInMemoryRepositoryConfiguration.java

示例4: mfaTrustEngine

import com.google.common.cache.CacheLoader; //导入依赖的package包/类
@ConditionalOnMissingBean(name = "mfaTrustEngine")
@Bean
@RefreshScope
public MultifactorAuthenticationTrustStorage mfaTrustEngine() {
    final LoadingCache<String, MultifactorAuthenticationTrustRecord> storage = CacheBuilder.newBuilder()
            .initialCapacity(INITIAL_CACHE_SIZE)
            .maximumSize(MAX_CACHE_SIZE)
            .recordStats()
            .expireAfterWrite(casProperties.getAuthn().getMfa().getTrusted().getExpiration(),
                    casProperties.getAuthn().getMfa().getTrusted().getTimeUnit())
            .build(new CacheLoader<String, MultifactorAuthenticationTrustRecord>() {
                @Override
                public MultifactorAuthenticationTrustRecord load(final String s) throws Exception {
                    LOGGER.error("Load operation of the cache is not supported.");
                    return null;
                }
            });

    final InMemoryMultifactorAuthenticationTrustStorage m = new InMemoryMultifactorAuthenticationTrustStorage(storage);
    m.setCipherExecutor(mfaTrustCipherExecutor());
    return m;
}
 
开发者ID:mrluo735,项目名称:cas-5.1.0,代码行数:23,代码来源:MultifactorAuthnTrustConfiguration.java

示例5: oneTimeTokenAuthenticatorTokenRepository

import com.google.common.cache.CacheLoader; //导入依赖的package包/类
@ConditionalOnMissingBean(name = "oneTimeTokenAuthenticatorTokenRepository")
@Bean
public OneTimeTokenRepository oneTimeTokenAuthenticatorTokenRepository() {
    final LoadingCache<String, Collection<OneTimeToken>> storage = CacheBuilder.newBuilder()
            .initialCapacity(INITIAL_CACHE_SIZE)
            .maximumSize(MAX_CACHE_SIZE)
            .recordStats()
            .expireAfterWrite(EXPIRE_TOKENS_IN_SECONDS, TimeUnit.SECONDS)
            .build(new CacheLoader<String, Collection<OneTimeToken>>() {
                @Override
                public Collection<OneTimeToken> load(final String s) throws Exception {
                    LOGGER.error("Load operation of the cache is not supported.");
                    return null;
                }
            });
    return new CachingOneTimeTokenRepository(storage);
}
 
开发者ID:mrluo735,项目名称:cas-5.1.0,代码行数:18,代码来源:OneTimeTokenAuthenticationConfiguration.java

示例6: CachingReEncryptionKeyProvider

import com.google.common.cache.CacheLoader; //导入依赖的package包/类
public CachingReEncryptionKeyProvider(AbstractReEncryptionKeyProvider prov, long keyTimeoutMillis,
      long eekTimeoutMillis) {
    super(prov.getConf());
    this.provider = prov;
    reEncryptionKeyCache =
        CacheBuilder.newBuilder().expireAfterAccess(keyTimeoutMillis,
            TimeUnit.MILLISECONDS)
            .build(new CacheLoader<ReEncryptionKeyCacheKey, ReEncryptionKeyInstance>() {
              @Override
              public ReEncryptionKeyInstance load(ReEncryptionKeyCacheKey key) throws Exception {
                ReEncryptionKeyInstance kv = provider.createReEncryptionKey(
                    key.getSrcKeyName(), key.getDstKeyName());
                if (kv == null) {
                  throw new KeyNotFoundException();
                }
                return kv;
              }
            });
  transformedEEKCache =
        CacheBuilder.newBuilder().expireAfterAccess(eekTimeoutMillis,
            TimeUnit.MILLISECONDS)
            .build();
}
 
开发者ID:nucypher,项目名称:hadoop-oss,代码行数:24,代码来源:CachingReEncryptionKeyProvider.java

示例7: AuthorizationController

import com.google.common.cache.CacheLoader; //导入依赖的package包/类
/**
 * 
 */
public AuthorizationController() {
	cache = CacheBuilder.newBuilder()
			// 设置并发级别为200,并发级别是指可以同时写缓存的线程数
			.concurrencyLevel(200)
			// 设置写缓存后1分钟过期
			.expireAfterWrite(2, TimeUnit.MINUTES).initialCapacity(10).maximumSize(100)
			// 设置要统计缓存的命中率
			.recordStats()
			// 设置缓存的移除通知
			.removalListener(new RemovalListener<String, SNSUserInfo>() {
				@Override
				public void onRemoval(RemovalNotification<String, SNSUserInfo> notification) {
					log.info(notification.getKey() + " was removed, cause by " + notification.getCause());
				}
			}).build(new CacheLoader<String, SNSUserInfo>() {
				// build方法中可以指定CacheLoader,在缓存不存在时通过CacheLoader的实现自动加载缓存
				@Override
				public SNSUserInfo load(String appIdSecret) throws Exception {
					return userInfoCache.get(appIdSecret);
				}
			});
}
 
开发者ID:tojaoomy,项目名称:private-WeChat,代码行数:26,代码来源:AuthorizationController.java

示例8: FileCache

import com.google.common.cache.CacheLoader; //导入依赖的package包/类
public FileCache(int maxSize, int concurrencyLevel) {
	cache = CacheBuilder.newBuilder()
		.maximumSize(maxSize)
		.concurrencyLevel(concurrencyLevel)
		.build(new CacheLoader<File, byte[]>() {
			@SneakyThrows
			@Override
			public byte[] load(File key) throws Exception {
				if (!key.isFile()) throw new IllegalArgumentException(key + ": not a file");
				ByteArrayOutputStream baos = new ByteArrayOutputStream();
				FileInputStream fis = new FileInputStream(key);
				byte[] buffer = new byte[1024];
				int read;
				while ((read = fis.read(buffer)) != -1) baos.write(buffer, 0, read);
				fis.close();
				return baos.toByteArray();
			}
		});
}
 
开发者ID:Mantaro,项目名称:MantaroRPG,代码行数:20,代码来源:FileCache.java

示例9: CachedGeocoder

import com.google.common.cache.CacheLoader; //导入依赖的package包/类
/**
 * Adds a cache to the given geocoder.
 * @param geocoder to decorate.
 */
public CachedGeocoder(Geocoder geocoder)
{
   Objects.requireNonNull(geocoder);
   decorated = geocoder;

   cache = CacheBuilder.newBuilder()
         .concurrencyLevel(4)
         .maximumSize(1000)
         .expireAfterWrite(10, TimeUnit.MINUTES)
         .expireAfterAccess(10, TimeUnit.MINUTES)
         .build(
               new CacheLoader<String, String>()
               {
                  @Override
                  public String load(String key)
                  {
                     return decorated.getBoundariesWKT(key);
                  }
               }
         );
}
 
开发者ID:SentinelDataHub,项目名称:dhus-core,代码行数:26,代码来源:CachedGeocoder.java

示例10: getMetadata

import com.google.common.cache.CacheLoader; //导入依赖的package包/类
@Override
public Map<String, Map<String, String>> getMetadata(File f)
{
	LoadingCache<String, Map<String, String>> metadata = CacheBuilder.newBuilder().build(
		CacheLoader.from(new Function<String, Map<String, String>>()
	{
		@Override
		public Map<String, String> apply(String input)
		{
			return Maps.newHashMap();
		}
	}));
	
	for( MetadataHandler handler : pluginTracker.getBeanList() )
	{
		handler.getMetadata(metadata, f);
	}

	return metadata.asMap();
}
 
开发者ID:equella,项目名称:Equella,代码行数:21,代码来源:MetadataServiceImpl.java

示例11: getFromCache

import com.google.common.cache.CacheLoader; //导入依赖的package包/类
@SuppressWarnings("unchecked")
private <T> T getFromCache(Object key, String property, final CacheLoader<String, T> loader)
{
	Cache<Object, Object> map = cache.getCache();

	Object ro = map.getIfPresent(key);
	if( ro == null )
	{
		T newObj = loadFromDb(property, loader);
		synchronized( map )
		{
			map.put(key, newObj != null ? newObj : CACHED_NULL);
			return newObj;
		}
	}
	else
	{
		return ro.equals(CACHED_NULL) ? null : (T) ro;
	}
}
 
开发者ID:equella,项目名称:Equella,代码行数:21,代码来源:ConfigurationServiceImpl.java

示例12: BaseProcessingUnit

import com.google.common.cache.CacheLoader; //导入依赖的package包/类
/**
 * Creates a new processing unit.
 *
 * @param name name.
 * @param engine the engine.
 * @param inQueue input queue.
 * @param outQueue output queue.
 */
public BaseProcessingUnit(String name, Engine engine, EventQueue inQueue, EventQueue outQueue) {
    super(name, engine);
    this.inQueue = inQueue;
    this.outQueue = outQueue;

    long cacheExpireTime = engine.getDefaultParameters().getProcessingUnitEventProcessorCacheExpireTime();
    if (cacheExpireTime >= 0) {
        // Turn on the cache.
        CacheBuilder<Object, Object> builder = CacheBuilder.newBuilder();
        if (cacheExpireTime > 0) {
            builder.expireAfterAccess(cacheExpireTime, TimeUnit.MILLISECONDS);
        }

        eventNameProcessorsCache = builder.build(new CacheLoader<String, Set<AtomicReference<T>>>() {

            @Override
            public Set<AtomicReference<T>> load(String eventName) throws Exception {
                return resolveEventProcessors(eventName);
            }
        });
    }
}
 
开发者ID:softelnet,项目名称:sponge,代码行数:31,代码来源:BaseProcessingUnit.java

示例13: CachedScriptClassInstancePovider

import com.google.common.cache.CacheLoader; //导入依赖的package包/类
public CachedScriptClassInstancePovider(Engine engine, Function<String, S> createScriptFunction, String format,
        BiFunction<S, Class<T>, T> createInstanceFunction) {
    this.createScriptFunction = createScriptFunction;
    this.format = format;
    this.createInstanceFunction = createInstanceFunction;

    long cacheExpireTime = engine.getDefaultParameters().getScriptClassInstancePoviderCacheExpireTime();
    if (cacheExpireTime >= 0) {
        // Turn on the cache.
        CacheBuilder<Object, Object> builder = CacheBuilder.newBuilder();
        if (cacheExpireTime > 0) {
            builder.expireAfterAccess(cacheExpireTime, TimeUnit.MILLISECONDS);
        }

        cache = builder.build(new CacheLoader<String, S>() {

            @Override
            public S load(String className) throws Exception {
                return createScript(className);
            }
        });
    }
}
 
开发者ID:softelnet,项目名称:sponge,代码行数:24,代码来源:CachedScriptClassInstancePovider.java

示例14: HunspellService

import com.google.common.cache.CacheLoader; //导入依赖的package包/类
@Inject
public HunspellService(final Settings settings, final Environment env, final Map<String, Dictionary> knownDictionaries) throws IOException {
    super(settings);
    this.knownDictionaries = knownDictionaries;
    this.hunspellDir = resolveHunspellDirectory(settings, env);
    this.defaultIgnoreCase = settings.getAsBoolean(HUNSPELL_IGNORE_CASE, false);
    dictionaries = CacheBuilder.newBuilder().build(new CacheLoader<String, Dictionary>() {
        @Override
        public Dictionary load(String locale) throws Exception {
            Dictionary dictionary = knownDictionaries.get(locale);
            if (dictionary == null) {
                dictionary = loadDictionary(locale, settings, env);
            }
            return dictionary;
        }
    });
    if (!settings.getAsBoolean(HUNSPELL_LAZY_LOAD, false)) {
        scanAndLoadDictionaries();
    }
}
 
开发者ID:baidu,项目名称:Elasticsearch,代码行数:21,代码来源:HunspellService.java

示例15: clientLoader

import com.google.common.cache.CacheLoader; //导入依赖的package包/类
private CacheLoader<String, DFSClient> clientLoader() {
  return new CacheLoader<String, DFSClient>() {
    @Override
    public DFSClient load(String userName) throws Exception {
      UserGroupInformation ugi = getUserGroupInformation(
              userName,
              UserGroupInformation.getCurrentUser());

      // Guava requires CacheLoader never returns null.
      return ugi.doAs(new PrivilegedExceptionAction<DFSClient>() {
        @Override
        public DFSClient run() throws IOException {
          return new DFSClient(NameNode.getAddress(config), config);
        }
      });
    }
  };
}
 
开发者ID:naver,项目名称:hadoop,代码行数:19,代码来源:DFSClientCache.java


注:本文中的com.google.common.cache.CacheLoader类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。