SpringBoot_Cache自定义使用SimpleCacheManager

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_26323323/article/details/81746265

前言:

    在SpringBoot_Cache中,会默认使用SimpleCacheManager。

    但是笔者遇到一个问题,就是当前项目中也引用了redis的maven依赖,导致Cache使用了JedisManager,笔者还是想使用默认的SimpleCacheManager

    这个时候就需要我们手动生成SimpleCacheManager的bean,则Cache会强制使用该bean

    关于SpringBoot_Cache的使用笔者就不再赘述,读者可参考网络文章。

解决方案:

    创建一个Config类,然后主动生成SimpleCacheManager,代码如下

@Configuration
public class CacheManagerConfig {

	@Bean("cacheManager")
	// List<Cache>会主动搜索Cache的实现bean,并添加到caches中
	public SimpleCacheManager cacheManager(List<Cache> caches){
		SimpleCacheManager simpleCacheManager = new SimpleCacheManager();
		
		simpleCacheManager.setCaches(caches);
		return simpleCacheManager;
	}
	
	
	@Bean("stockDetail")
	public ConcurrentMapCacheFactoryBean stockDetail(){
		ConcurrentMapCacheFactoryBean stockDetail = new ConcurrentMapCacheFactoryBean();
		// 如果用户设置名称为stockDetail的缓存,则需要添加这样的一个bean
		stockDetail.setName("stockDetail");
		
		return stockDetail;
	}
	
	@Bean("detailMsg")
	public ConcurrentMapCacheFactoryBean detailMsg(){
		ConcurrentMapCacheFactoryBean stockDetail = new ConcurrentMapCacheFactoryBean();
		// 如果用户设置名称为detailMsg的缓存,则需要添加这样的一个bean
		stockDetail.setName("detailMsg");
		
		return stockDetail;
	}
}

注意:如果读者在使用@Cache的时候,需要多个不同命名的cache时,需添加多个ConcurrentMapCacheFactoryBean

猜你喜欢

转载自blog.csdn.net/qq_26323323/article/details/81746265
今日推荐