下面列出了com.codahale.metrics.ehcache.InstrumentedEhcache#org.springframework.cache.ehcache.EhCacheCacheManager 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private CacheManager decision(org.springframework.cache.CacheManager springCacheManager) {
if (springCacheManager instanceof EhCacheCacheManager) {
EhCacheManager ehCacheManager = new EhCacheManager();
ehCacheManager.setCacheManager(((EhCacheCacheManager) springCacheManager).getCacheManager());
return ehCacheManager;
}
if (springCacheManager instanceof org.springframework.data.redis.cache.RedisCacheManager) {
GenericJackson2JsonRedisSerializer jsonSerializer = new GenericJackson2JsonRedisSerializer();
RedisTemplate rt = new RedisTemplate<Object, Object>();
rt.setConnectionFactory(SpringContextUtils.getBean(RedisConnectionFactory.class));
rt.setKeySerializer(jsonSerializer);
rt.setHashKeySerializer(jsonSerializer);
rt.setBeanClassLoader(this.getClass().getClassLoader());
rt.afterPropertiesSet();
RedisCacheManager redisCacheManager = new RedisCacheManager();
redisCacheManager.setRedisTemplate(rt);
return redisCacheManager;
}
return new SpringCacheManager(springCacheManager);
}
private void biuldCacheManager() {
this.cacheManager = this.customizer.getCacheManager();
if(Objects.isNull(this.cacheManager)) {
if(Objects.isNull(springCacheManager)) {
this.cacheManager = new MapCacheManager();
}else {
if (springCacheManager instanceof EhCacheCacheManager) {
EhCacheManager ehCacheManager = new EhCacheManager();
ehCacheManager.setCacheManager(((EhCacheCacheManager) springCacheManager).getCacheManager());
this.cacheManager = ehCacheManager;
}
if (springCacheManager instanceof org.springframework.data.redis.cache.RedisCacheManager) {
RedisCacheManager redisCacheManager = new RedisCacheManager();
redisCacheManager.setRedisTemplate(RedisUtils.imitateRedisTemplate());
this.cacheManager = redisCacheManager;
}
}
}
this.cacheDelegator = new CacheDelegator(this.cacheManager);
}
@Bean
public CacheManager cacheManager() {
log.debug("Starting Ehcache");
cacheManager = net.sf.ehcache.CacheManager.create();
cacheManager.getConfiguration().setMaxBytesLocalHeap(env.getProperty("cache.ehcache.maxBytesLocalHeap", String.class, "16M"));
log.debug("Registering Ehcache Metrics gauges");
Set<EntityType<?>> entities = entityManager.getMetamodel().getEntities();
for (EntityType<?> entity : entities) {
String name = entity.getName();
if (name == null || entity.getJavaType() != null) {
name = entity.getJavaType().getName();
}
Assert.notNull(name, "entity cannot exist without a identifier");
net.sf.ehcache.Cache cache = cacheManager.getCache(name);
if (cache != null) {
cache.getCacheConfiguration().setTimeToLiveSeconds(env.getProperty("cache.timeToLiveSeconds", Long.class, 3600L));
net.sf.ehcache.Ehcache decoratedCache = InstrumentedEhcache.instrument(metricRegistry, cache);
cacheManager.replaceCacheWithDecoratedCache(cache, decoratedCache);
}
}
EhCacheCacheManager ehCacheManager = new EhCacheCacheManager();
ehCacheManager.setCacheManager(cacheManager);
return ehCacheManager;
}
@Bean
public CacheManager cacheManager() {
log.debug("Starting Ehcache");
cacheManager = net.sf.ehcache.CacheManager.create();
cacheManager.getConfiguration().setMaxBytesLocalHeap(env.getProperty("cache.ehcache.maxBytesLocalHeap", String.class, "16M"));
log.debug("Registering Ehcache Metrics gauges");
Set<EntityType<?>> entities = entityManager.getMetamodel().getEntities();
for (EntityType<?> entity : entities) {
String name = entity.getName();
if (name == null || entity.getJavaType() != null) {
name = entity.getJavaType().getName();
}
Assert.notNull(name, "entity cannot exist without a identifier");
net.sf.ehcache.Cache cache = cacheManager.getCache(name);
if (cache != null) {
cache.getCacheConfiguration().setTimeToLiveSeconds(env.getProperty("cache.timeToLiveSeconds", Long.class, 3600L));
net.sf.ehcache.Ehcache decoratedCache = InstrumentedEhcache.instrument(metricRegistry, cache);
cacheManager.replaceCacheWithDecoratedCache(cache, decoratedCache);
}
}
EhCacheCacheManager ehCacheManager = new EhCacheCacheManager();
ehCacheManager.setCacheManager(cacheManager);
return ehCacheManager;
}
@Bean
public CacheManager cacheManager(net.sf.ehcache.CacheManager cm,
RedisTemplate<String, Object> redisTemplate) {
CompositeCacheManager compositeCacheManager = new CompositeCacheManager();
List<CacheManager> managers = new ArrayList<CacheManager>();
managers.add(new EhCacheCacheManager(cm));
managers.add(new RedisCacheManager(redisTemplate));
compositeCacheManager.setCacheManagers(managers);//添加缓存管理器,按添加顺序查找,没找到再往下找
return compositeCacheManager;
}
public Ehcache(EhCacheCacheManager ehCacheCacheManager) {
this.ehCacheCacheManager = ehCacheCacheManager;
}
@Bean
public EhCacheCacheManager cacheManager(CacheManager cm) {
return new EhCacheCacheManager(cm);
}
@Bean
public CacheManager cacheManager() {
return new EhCacheCacheManager(cacheManagerFactoryBean().getObject());
}
@Bean
public CacheManager cacheManager() {
return new EhCacheCacheManager(ehCacheCacheManager().getObject());
}
@Bean(name = "appEhCacheCacheManager")
public EhCacheCacheManager ehCacheCacheManager(EhCacheManagerFactoryBean bean){
return new EhCacheCacheManager (bean.getObject());
}
@Bean
public CacheManager cacheManager(){
CacheManager cm = new EhCacheCacheManager( ehCacheCacheManager().getObject());
return cm;
}
@Bean
public CacheManager cacheManager() {
val manager = new EhCacheCacheManager();
manager.setCacheManager(ehcache().getObject());
return manager;
}
@Bean
public EhCacheCacheManager ehCacheCacheManager(){
return new EhCacheCacheManager(ehCacheManagerFactoryBean().getObject());
}
/**
* Spring IoC.
*
* @param cacheManager cache manager
*/
public void setCacheManager(final EhCacheCacheManager cacheManager) {
PROVIDER = new SingletonEhCacheRegionFactory(null) {{
manager = cacheManager.getCacheManager();
}};
}
@Bean
@Override
public CacheManager cacheManager()
{
return new EhCacheCacheManager(ehCacheManager());
}
/**
* ehcache 主要的管理器
*
* @param cacheManagerFactoryBean cm
* @return ec
*/
@Bean
public EhCacheCacheManager ehCacheCacheManager(EhCacheManagerFactoryBean cacheManagerFactoryBean) {
return new EhCacheCacheManager(cacheManagerFactoryBean.getObject());
}
/**
* ehcache管理器
* @param bean
* @return
*/
@Bean
public EhCacheCacheManager ehCacheCacheManager(EhCacheManagerFactoryBean bean){
return new EhCacheCacheManager(bean.getObject());
}