package spittr.config;
import net.sf.ehcache.CacheManager;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cache.concurrent.ConcurrentMapCacheManager;
import org.springframework.cache.ehcache.EhCacheCacheManager;
import org.springframework.cache.ehcache.EhCacheManagerFactoryBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.ClassPathResource;
/**
* @version 版权 Copyright(c)2019
* @ClassName:
* @Descripton: 开启缓存
* @author: Shing
* @date: 2020-07-13 14:34
*/
@Configuration
@EnableCaching
public class CachingConfig {
// @Bean
// public CacheManager cacheManager(){
// //声明缓存管理器
// //一个简单、可用、适用于开发、测试、基于内存的缓存
// return new ConcurrentMapCacheManager();
// }
/**
* Spring提供的缓存管理器
* SimpleCacheManager
* NoOpCacheManager
* ConCurrentMapCacheManager
* CompositeCacheManager
* EhCacheManager
* RedisCacheManager
* GemfireCacheManager
*/
/**
* 创建spring的EhCacheCacheManager需要传入一个
* net.sf.ehcache.CacheManager
* @param ehcache
* @return
*/
@Bean
public EhCacheCacheManager cacheManager(CacheManager ehcache){
return new EhCacheCacheManager(ehcache);
}
/**
* spring的EhCacheManagerFactoryBean提供了一个net.sf.ehcache.CacheManager
* 的工厂生成类,生成net.sf.ehcache.CacheManager
* @return
*/
@Bean
public EhCacheManagerFactoryBean ehcache(){
EhCacheManagerFactoryBean ehCacheManagerFactoryBean =
new EhCacheManagerFactoryBean();
ehCacheManagerFactoryBean.setConfigLocation(
new ClassPathResource("spittr/cache/ehcache.xml"));
return ehCacheManagerFactoryBean;
}
}