springboot 集成 ehcache3.x

springboot 集成 ehcache3.x

上一篇是集成ehcache2.x的版本,ehcache3.x改动较大,实现jsr-107规范,所以需要进行修改

主要就是修改配置类和添加配置文件

maven

 
        org.ehcache
        ehcache
    

    
        javax.cache
        cache-api
        1.1.0
    

配置类

@Configuration
public class Conf {


@Bean
public CacheManager cacheManager() throws URISyntaxException, FileNotFoundException {
	*//*创建springCacheManager接口的具体实现类,参数是javax下面的CacheManager实现类*//*
	return new JCacheCacheManager(jCacheManager());
}

@Bean
public javax.cache.CacheManager jCacheManager() throws URISyntaxException, FileNotFoundException {

	//ehcache实现了javax的CachingProvider接口的具体实现
	EhcacheCachingProvider ehcacheCachingProvider = new EhcacheCachingProvider();

	//根据配置文件获取cachemanager
	URI uri = ResourceUtils.getURL("classpath:ehcache.xml").toURI();

	javax.cache.CacheManager cacheManager = ehcacheCachingProvider.getCacheManager(uri,this.getClass().getClassLoader());

	Cache orderDetailCache = cacheManager.getCache("orderDetailCache");


	return cacheManager;

}

}

配置文件









    java.lang.Long
    com.fys.tradeim.message.OtcOrderDetail
    
        12
    
    100000
    




    java.lang.String
    java.lang.String
    
        2
    
    1
    




    100





主要是配置文件和配置方法变了,使用起来没有变化

查看命中率,缓存数量等信息

需要使用jdk提供的jconsole工具,具体百度一下,连接到我们的程序,选择项卡中找到 ‘mbean’的选项卡,点进去能看到 ‘statistics’和‘management’的配置信息
如何在代码中查看,我暂时还不知道

需要注意的

加上@Cacheable注解的方法A,如果被同类的方法B调用是不起作用的,两个解决办法

1.使用aspectj织入
2.将@Cacheable的方法单独提取到一个类中

推荐第二种

你可能感兴趣的:(java)