Spring-boot使用Ehcache配置

时间:2023-03-08 18:32:22

1、配置类

@Configuration
@EnableCaching
public class CacheConfiguration {// implements CachingConfigurer { @Bean
//@Override
public CacheManager cacheManager() {
EhCacheCacheManager cacheManager = new EhCacheCacheManager();
cacheManager.setCacheManager(ehCacheManagerFactoryBean().getObject());
return cacheManager;
} @Bean
//@Override
public KeyGenerator keyGenerator() {
return new SimpleKeyGenerator();
} @Bean
public EhCacheManagerFactoryBean ehCacheManagerFactoryBean() {
EhCacheManagerFactoryBean ehCacheManagerFactoryBean = new EhCacheManagerFactoryBean();
ehCacheManagerFactoryBean.setConfigLocation(new ClassPathResource("ehcache.xml"));
ehCacheManagerFactoryBean.setCacheManagerName("messageCache");
ehCacheManagerFactoryBean.setShared(true);
return ehCacheManagerFactoryBean;
} // @Override
// public CacheResolver cacheResolver() {
// // TODO Auto-generated method stub
// return new SimpleCacheResolver();
// }
//
// @Override
// public CacheErrorHandler errorHandler() {
// // TODO Auto-generated method stub
// return new SimpleCacheErrorHandler();
// } }

2、位于resource目录下的配置文件ehcache.xml

<?xml version="1.0" encoding="UTF-8"?>
<ehcache>
<defaultCache eternal="true" maxElementsInMemory="100" overflowToDisk="false" />
<cache name="messageCache" maxElementsInMemory="10" eternal="true" overflowToDisk="false" />
</ehcache>

3、Cache对象

    @Cacheable(value="messageCache")
public Integer testCashe( String data ) {
return new Integer(data.length());
}

注意:Cache对象的value参数要与ehcache.xml配置文件中对应一致。