org.springframework.cache.guava.GuavaCacheManager类的使用及代码示例

x33g5p2x  于2022-01-20 转载在 其他  
字(9.2k)|赞(0)|评价(0)|浏览(511)

本文整理了Java中org.springframework.cache.guava.GuavaCacheManager类的一些代码示例,展示了GuavaCacheManager类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。GuavaCacheManager类的具体详情如下:
包路径:org.springframework.cache.guava.GuavaCacheManager
类名称:GuavaCacheManager

GuavaCacheManager介绍

[英]CacheManager implementation that lazily builds GuavaCacheinstances for each #getCache request. Also supports a 'static' mode where the set of cache names is pre-defined through #setCacheNames, with no dynamic creation of further cache regions at runtime.

The configuration of the underlying cache can be fine-tuned through a Guava CacheBuilder or CacheBuilderSpec, passed into this CacheManager through #setCacheBuilder/ #setCacheBuilderSpec. A CacheBuilderSpec-compliant expression value can also be applied via the #setCacheSpecification bean property.

Requires Google Guava 12.0 or higher.
[中]CacheManager实现,为每个#getCache请求惰性地构建GuavacheInstances。还支持“静态”模式,其中缓存名称集通过#setCacheNames预定义,在运行时不动态创建其他缓存区域。
底层缓存的配置可以通过Guava CacheBuilder或CacheBuilderSpec进行微调,并通过#setCacheBuilder/#setCacheBuilderSpec传递到此CacheManager。CacheBuilderSpec兼容的表达式值也可以通过#setCacheSpecification bean属性应用。
需要Google Guava 12.0或更高版本。

代码示例

代码示例来源:origin: lianggzone/springboot-action

@Bean
  public CacheManager cacheManager() {
    GuavaCacheManager cacheManager = new GuavaCacheManager();
    cacheManager.setCacheBuilder(
      CacheBuilder.newBuilder().
      expireAfterWrite(10, TimeUnit.SECONDS).
      maximumSize(1000));
    return cacheManager;
  }
}

代码示例来源:origin: 527515025/springBoot

@Bean
  public CacheManager getCacheManager() {
    List<Person> personList = demoService.findAll();
    //所有缓存的名字
    List<String> cacheNames = new ArrayList();
    GuavaCacheManager cacheManager = new GuavaCacheManager();
    //GuavaCacheManager 的数据结构类似  Map<String,Map<Object,Object>>  map =new HashMap<>();

    //将数据放入缓存
    personList.stream().forEach(person -> {
      //用person 的id cacheName
      String cacheName=person.getId().toString();
      if(cacheManager.getCache(cacheName)==null){
        //为每一个person 如果不存在,创建一个新的缓存对象
        cacheNames.add(cacheName);
        cacheManager.setCacheNames(cacheNames);
      }
      Cache cache = cacheManager.getCache(cacheName);
      //缓存对象用person的id当作缓存的key 用person 当作缓存的value
      cache.put(person.getId(),person);
      System.out.println("为 ID 为"+cacheName+ "的person 数据做了缓存");
    });
    return cacheManager;
  }
}

代码示例来源:origin: eclipse/hono

/**
 * Create a new cache provider based on Guava and Spring Cache.
 * 
 * @param config The configuration to use as base for this cache.
 * @return A new cache provider or {@code null} if no cache should be used.
 */
private static CacheProvider newGuavaCache(final RequestResponseClientConfigProperties config) {
  final int minCacheSize = config.getResponseCacheMinSize();
  final long maxCacheSize = config.getResponseCacheMaxSize();
  if (maxCacheSize <= 0) {
    return null;
  }
  final CacheBuilder<Object, Object> builder = CacheBuilder.newBuilder()
      .concurrencyLevel(1)
      .initialCapacity(minCacheSize)
      .maximumSize(Math.max(minCacheSize, maxCacheSize));
  final GuavaCacheManager manager = new GuavaCacheManager();
  manager.setAllowNullValues(false);
  manager.setCacheBuilder(builder);
  return new SpringCacheProvider(manager);
}

代码示例来源:origin: zalando-stups/fullstop

private static CacheManager buildCacheManager(final String spec) {
  final GuavaCacheManager cacheManager = new GuavaCacheManager();
  cacheManager.setCacheBuilderSpec(parse(spec));
  return cacheManager;
}

代码示例来源:origin: org.eclipse.hawkbit/hawkbit-repository-test

@Bean
TenantAwareCacheManager cacheManager() {
  return new TenantAwareCacheManager(new GuavaCacheManager(), tenantAware());
}
/**

代码示例来源:origin: apache/servicemix-bundles

/**
 * Construct a static GuavaCacheManager,
 * managing caches for the specified cache names only.
 */
public GuavaCacheManager(String... cacheNames) {
  setCacheNames(Arrays.asList(cacheNames));
}

代码示例来源:origin: apache/servicemix-bundles

/**
 * Specify the set of cache names for this CacheManager's 'static' mode.
 * <p>The number of caches and their names will be fixed after a call to this method,
 * with no creation of further cache regions at runtime.
 * <p>Calling this with a {@code null} collection argument resets the
 * mode to 'dynamic', allowing for further creation of caches again.
 */
public void setCacheNames(Collection<String> cacheNames) {
  if (cacheNames != null) {
    for (String name : cacheNames) {
      this.cacheMap.put(name, createGuavaCache(name));
    }
    this.dynamic = false;
  }
  else {
    this.dynamic = true;
  }
}

代码示例来源:origin: org.eclipse.hono/hono-service-base

/**
   * Create a new cache provider based on Guava and Spring Cache.
   * 
   * @param config The configuration to use as base for this cache.
   * @return A new cache provider or {@code null} if no cache should be used.
   */
  private static CacheProvider newGuavaCache(final RequestResponseClientConfigProperties config) {
    final int minCacheSize = config.getResponseCacheMinSize();
    final long maxCacheSize = config.getResponseCacheMaxSize();

    if (maxCacheSize <= 0) {
      return null;
    }

    final CacheBuilder<Object, Object> builder = CacheBuilder.newBuilder()
        .concurrencyLevel(1)
        .initialCapacity(minCacheSize)
        .maximumSize(Math.max(minCacheSize, maxCacheSize));

    final GuavaCacheManager manager = new GuavaCacheManager();
    manager.setAllowNullValues(false);
    manager.setCacheBuilder(builder);

    return new SpringCacheProvider(manager);
  }
}

代码示例来源:origin: zalando-stups/fullstop

private static CacheManager buildCacheManager(final String spec) {
  final GuavaCacheManager cacheManager = new GuavaCacheManager();
  cacheManager.setCacheBuilderSpec(parse(spec));
  return cacheManager;
}

代码示例来源:origin: apache/servicemix-bundles

/**
 * Create the known caches again with the current state of this manager.
 */
private void refreshKnownCaches() {
  for (Map.Entry<String, Cache> entry : this.cacheMap.entrySet()) {
    entry.setValue(createGuavaCache(entry.getKey()));
  }
}

代码示例来源:origin: kaif-open/kaif

@Bean
public CacheManager rssHotArticlesCacheManager() {
 CacheBuilder<Object, Object> cacheBuilder = CacheBuilder.newBuilder()
   .expireAfterWrite(4, TimeUnit.HOURS)
   .maximumSize(100);
 GuavaCacheManager cacheManager = new GuavaCacheManager("rssHotArticles");
 cacheManager.setCacheBuilder(cacheBuilder);
 return cacheManager;
}

代码示例来源:origin: apache/servicemix-bundles

@Override
public Cache getCache(String name) {
  Cache cache = this.cacheMap.get(name);
  if (cache == null && this.dynamic) {
    synchronized (this.cacheMap) {
      cache = this.cacheMap.get(name);
      if (cache == null) {
        cache = createGuavaCache(name);
        this.cacheMap.put(name, cache);
      }
    }
  }
  return cache;
}

代码示例来源:origin: kaif-open/kaif

@Bean
public CacheManager articleCacheManager() {
 CacheBuilder<Object, Object> cacheBuilder = CacheBuilder.newBuilder()
   .expireAfterWrite(10, TimeUnit.MINUTES)
   .maximumSize(2000);
 GuavaCacheManager cacheManager = new GuavaCacheManager("Article");
 cacheManager.setCacheBuilder(cacheBuilder);
 return cacheManager;
}

代码示例来源:origin: kaif-open/kaif

@Bean
 public CacheManager honorRollsCacheManager() {
  CacheBuilder<Object, Object> cacheBuilder = CacheBuilder.newBuilder()
    .expireAfterWrite(1, TimeUnit.HOURS)
    .maximumSize(100);
  GuavaCacheManager cacheManager = new GuavaCacheManager("listHonorRoll");
  cacheManager.setCacheBuilder(cacheBuilder);
  return cacheManager;
 }
}

代码示例来源:origin: kaif-open/kaif

@Bean
public CacheManager zoneInfoCacheManager() {
 CacheBuilder<Object, Object> cacheBuilder = CacheBuilder.newBuilder()
   .expireAfterWrite(10, TimeUnit.MINUTES)
   .maximumSize(2000);
 GuavaCacheManager cacheManager = new GuavaCacheManager("ZoneInfo");
 cacheManager.setCacheBuilder(cacheBuilder);
 return cacheManager;
}

代码示例来源:origin: kaif-open/kaif

/**
 * administrators cache, refresh every one minutes. no need to distribute if we have multiple
 * web servers (user just not see new administrators)
 */
@Bean
public CacheManager listAdministratorsCacheManager() {
 CacheBuilder<Object, Object> cacheBuilder = CacheBuilder.newBuilder()
   .expireAfterWrite(1, TimeUnit.MINUTES)
   .maximumSize(1000);
 GuavaCacheManager cacheManager = new GuavaCacheManager("listAdministrators");
 cacheManager.setCacheBuilder(cacheBuilder);
 return cacheManager;
}

代码示例来源:origin: kaif-open/kaif

/**
 * hot zones cache, refresh every one hour. no need to distribute if we have multiple web servers
 *
 * @see {@link io.kaif.model.article.ArticleDao#listHotZonesWithCache(int, java.time.Instant)}
 */
@Bean
public CacheManager listHotZonesCacheManager() {
 CacheBuilder<Object, Object> cacheBuilder = CacheBuilder.newBuilder()
   .expireAfterWrite(1, TimeUnit.HOURS)
   .maximumSize(1000);
 GuavaCacheManager cacheManager = new GuavaCacheManager("listHotZones");
 cacheManager.setCacheBuilder(cacheBuilder);
 return cacheManager;
}

代码示例来源:origin: kaif-open/kaif

/**
 * short life client app user cache (the cache is Optional<ClientAppUser>), so this is not
 * distribute-able
 *
 * @see {@link io.kaif.model.clientapp.ClientAppDao#findClientAppUserWithCache}
 */
@Bean
public CacheManager findClientAppUserCacheManager() {
 CacheBuilder<Object, Object> cacheBuilder = CacheBuilder.newBuilder()
   .expireAfterWrite(1, TimeUnit.MINUTES)
   .maximumSize(1000);
 GuavaCacheManager cacheManager = new GuavaCacheManager("findClientAppUser");
 cacheManager.setCacheBuilder(cacheBuilder);
 return cacheManager;
}

代码示例来源:origin: org.eclipse.hawkbit/hawkbit-autoconfigure

/**
 * @return the direct cache manager to access without tenant aware
 *         check, cause in sometimes it's necessary to access the cache
 *         directly without having the current tenant, e.g. initial
 *         creation of tenant
 */
@Bean(name = "directCacheManager")
@ConditionalOnMissingBean(name = "directCacheManager")
public CacheManager directCacheManager() {
  final GuavaCacheManager cacheManager = new GuavaCacheManager();
  if (cacheProperties.getTtl() > 0) {
    final CacheBuilder<Object, Object> cacheBuilder = CacheBuilder.newBuilder()
        .expireAfterWrite(cacheProperties.getTtl(), cacheProperties.getTtlUnit());
    cacheManager.setCacheBuilder(cacheBuilder);
  }
  return cacheManager;
}

相关文章

微信公众号

最新文章

更多