本文整理了Java中org.springframework.cache.guava.GuavaCacheManager
类的一些代码示例,展示了GuavaCacheManager
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。GuavaCacheManager
类的具体详情如下:
包路径:org.springframework.cache.guava.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;
}
内容来源于网络,如有侵权,请联系作者删除!