当apache shiro跟spring cache结合使用时

如果双方都用ehcache作为缓冲库的话,对于cachemanger的设定会产生冲突,因为如果没有给shiro的EhCacheManager设定cachemanager的话,会创建一个默认名称的cachemanager,而spring的cache自动配置也同样会创建一个默认名称的cachemanager,由于ehcache2.5以后,不允许同一个jvm上存在两个同样名字的cachemanager,所以会报错。

解决的方法有两个,一个是自定义配置java文件,把名称改为另外一个,或者干脆就用同一个cachemanager。

下面是用同一个cachemanager时的配置方法。

	@Bean(name = "ehcache")
	public EhCacheManagerFactoryBean ehCacheManagerFactoryBean(){
		EhCacheManagerFactoryBean ehCacheManagerFactoryBean = new EhCacheManagerFactoryBean();
		ehCacheManagerFactoryBean.setConfigLocation(new ClassPathResource("ehcache.xml"));
		ehCacheManagerFactoryBean.setShared(true);
		return ehCacheManagerFactoryBean;
	}
	
	@Bean(name = "cacheManager")
	public EhCacheCacheManager ehCacheCacheManager(){
		EhCacheCacheManager ehCacheCacheManager = new EhCacheCacheManager();
		ehCacheCacheManager.setCacheManager(ehCacheManagerFactoryBean().getObject());
		return ehCacheCacheManager;
	}
	@Bean(name = "ehCacheManager")
	@DependsOn("lifecycleBeanPostProcessor")
	public EhCacheManager ehCacheManager(){
		EhCacheManager ehCacheManager = new EhCacheManager();
		ehCacheManager.setCacheManager(ehCacheManagerFactoryBean().getObject());
		return ehCacheManager;
	}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值