spring2.5以前是用第三方的EHCache,现在3.1开始原生支持了,以下是配置文件
<cache:annotation-driven cache-manager="cacheManager"/>
<bean id="cacheManager" class="org.springframework.cache.support.SimpleCacheManager">
<property name="caches">
<set>
<bean class="org.springframework.cache.concurrent.ConcurrentMapCacheFactoryBean" p:name="default" />
<bean class="org.springframework.cache.concurrent.ConcurrentMapCacheFactoryBean" p:name="useCache" />
</set>
</property>
</bean>
使用的时候在方法上调用@Cacheable就可以使用了,现在关键是value值需要指定放在哪个缓存里面,而XML配置文件里面目前配置了default和useCache两个,我想请问下如果管理多个,比如像以前的EHCache一样,专门用一个XML文件来管理,然后spring住配置文件里面引用那个XML就可以了,现在spring3.1原生支持的这种,也可以那样配置吗?求方法。
<cache:annotation-driven cache-manager="cacheManager"/>
<bean id="cacheManager" class="org.springframework.cache.support.SimpleCacheManager">
<property name="caches">
<set>
<bean class="org.springframework.cache.concurrent.ConcurrentMapCacheFactoryBean" p:name="default" />
<bean class="org.springframework.cache.concurrent.ConcurrentMapCacheFactoryBean" p:name="useCache" />
</set>
</property>
</bean>
使用的时候在方法上调用@Cacheable就可以使用了,现在关键是value值需要指定放在哪个缓存里面,而XML配置文件里面目前配置了default和useCache两个,我想请问下如果管理多个,比如像以前的EHCache一样,专门用一个XML文件来管理,然后spring住配置文件里面引用那个XML就可以了,现在spring3.1原生支持的这种,也可以那样配置吗?求方法。
你如果要更简单点,可以用 ConcurrentMapCacheManager,不用定义缓存名了。用到的时候自动带你new出来。
<bean id="cacheManager" class="org.springframework.cache.concurrent.ConcurrentMapCacheManager" />
spring3.1自带的那个,用的时候整个项目里面可以是同一个value?不用分开管理吗?
<bean class="org.springframework.cache.concurrent.ConcurrentMapCacheFactoryBean" p:name="default" />
<bean class="org.springframework.cache.concurrent.ConcurrentMapCacheFactoryBean" p:name="useCache" />
这两个bean可以不用写?
那我刚开始发的XML,要改成什么样?可以发下配置文件吗?注解使用的时候,是跟原来一样吧?
这个缓存对象也是,注解一下,其实和在配置文件里配置是一样的,只是用注解更方便,不用在配置文件里写那么多东西。